新增: 审批超时后端兜底,覆盖重启恢复场景
前端已有审批超时定时器(设置页可选 0/5/15/30/60 分钟),负责会话 内运行的审批超时检测。但应用重启后前端定时器丢失,从数据库恢复 的待审批无人计时,会永久卡死会话。 本次补充后端兜底机制: - 待审批记录创建时刻,用于超时判定 - 在审批恢复入口检测超时,超时自动取消并写入审计 - 应用启动时从设置恢复超时配置(默认 15 分钟,0 为禁用) - 新增读写超时配置的接口,设置页可改 - 与前端共用同一个配置项,保证单一真相源 同时更新待办文档,把已实现项标记为完成。
This commit is contained in:
@@ -61,7 +61,9 @@ pub fn run() {
|
||||
// 每次都走完整 握手(spawn + 锁 session + emit)造成事务事并行冲突 + emit 风暴。
|
||||
// 记录上次处理时间,3s 内重复事件跳过(只取首次,使能状态复位一次即可)。
|
||||
let last_handshake_at = std::sync::Arc::new(tokio::sync::Mutex::new(
|
||||
std::time::Instant::now() - std::time::Duration::from_secs(3600),
|
||||
std::time::Instant::now()
|
||||
.checked_sub(std::time::Duration::from_secs(3600))
|
||||
.unwrap_or_else(std::time::Instant::now),
|
||||
));
|
||||
let app_handle = app.handle().clone();
|
||||
app.listen("ai-client-ready", move |_event| {
|
||||
@@ -404,6 +406,9 @@ pub fn run() {
|
||||
commands::settings::settings_get_all,
|
||||
commands::settings::settings_delete,
|
||||
commands::settings::get_data_dir,
|
||||
// 审批超时配置(默认 15 分钟,0=禁用;Settings 页可改)
|
||||
commands::settings::ai_get_approval_timeout,
|
||||
commands::settings::ai_set_approval_timeout,
|
||||
])
|
||||
.run(tauri::generate_context!())
|
||||
.expect("error while running tauri application");
|
||||
|
||||
Reference in New Issue
Block a user