mirror of
https://github.com/hotyue/IP-Sentinel.git
synced 2026-09-04 23:18:17 +08:00
fix(master): 启用 SQLite WAL 高并发引擎与 5000ms 锁排队机制,彻底解决全舰队并发通讯时的 database is locked 报错
This commit is contained in:
+7
-2
@@ -45,9 +45,9 @@ edit_ui() {
|
|||||||
-d "{\"chat_id\":\"$1\",\"message_id\":\"$2\",\"text\":\"$3\",\"parse_mode\":\"Markdown\",\"reply_markup\":{\"inline_keyboard\":$4}}" > /dev/null
|
-d "{\"chat_id\":\"$1\",\"message_id\":\"$2\",\"text\":\"$3\",\"parse_mode\":\"Markdown\",\"reply_markup\":{\"inline_keyboard\":$4}}" > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
# 数据库执行函数
|
# 数据库执行函数 (v3.6.3 增强版: 注入 5000ms 锁排队超时防御)
|
||||||
db_exec() {
|
db_exec() {
|
||||||
sqlite3 "$DB_FILE" "$1"
|
sqlite3 "$DB_FILE" "PRAGMA busy_timeout=5000; $1"
|
||||||
}
|
}
|
||||||
|
|
||||||
# ================== [v3.0.4 核心: 动态 HMAC 签名生成器] ==================
|
# ================== [v3.0.4 核心: 动态 HMAC 签名生成器] ==================
|
||||||
@@ -69,6 +69,11 @@ generate_signed_url() {
|
|||||||
}
|
}
|
||||||
# ========================================================================
|
# ========================================================================
|
||||||
|
|
||||||
|
# ================== [v3.6.3 核心: 激活 SQLite 高并发 WAL 引擎] ==================
|
||||||
|
db_exec "PRAGMA journal_mode=WAL;" > /dev/null 2>&1
|
||||||
|
db_exec "PRAGMA synchronous=NORMAL;" > /dev/null 2>&1
|
||||||
|
# ==============================================================================
|
||||||
|
|
||||||
# ================== [v3.1.3-v3.6.0 核心: 数据库结构无损热升级] ==================
|
# ================== [v3.1.3-v3.6.0 核心: 数据库结构无损热升级] ==================
|
||||||
# 自动探测并增加缺失字段,屏蔽已存在的报错,保护老节点数据
|
# 自动探测并增加缺失字段,屏蔽已存在的报错,保护老节点数据
|
||||||
db_exec "ALTER TABLE nodes ADD COLUMN region TEXT DEFAULT 'UNKNOWN';" 2>/dev/null
|
db_exec "ALTER TABLE nodes ADD COLUMN region TEXT DEFAULT 'UNKNOWN';" 2>/dev/null
|
||||||
|
|||||||
Reference in New Issue
Block a user