qinglong/back/services
Martha Ramirez fc355bc86f 修复删除定时任务后 crontab.list 未同步导致订阅更新无法重新注册脚本
crontab.list 作为数据库的文件镜像,其同步 setCrontab() 此前串行在尽力而为
的 gRPC addCron/delCron 调用之后:当调度 worker 重启等导致 gRPC 短暂不可用、
addCron/delCron reject 时,setCrontab() 会被跳过,crontab.list 与数据库脱节。
而 shell/update.sh 的 gen_list_repo() 将 crontab.list 作为"已有任务"真源,
于是订阅更新误判脚本已存在、跳过新增注册(前端再也看不到这些脚本)。

将 create/update/remove/disabled/enabled/autosave_crontab 中的 gRPC 调用改为
尽力而为(try/catch + 告警日志),保证 setCrontab() 总是执行;autosave_crontab
额外将 setCrontab 提前到 addCron 之前,确保启动/调度器重启时文件总是同步,
并避免 gRPC 失败导致应用启动崩溃。

调度器内存中的任务注册与 crontab.list/系统 crontab 同步是两个相互独立的关注点:
gRPC 失败时内存调度可能在调度器重启后由 autosave_crontab 重新注册,但文件同步
不应因此被阻断。修复后既有的 crontab.list 残留会在下次重启或任意增删改时自愈。

可能与 #2422(订阅更新重复添加任务)同根因。
2026-06-27 11:34:21 +08:00
..
config.ts 修复配置文件路径可能越权 2026-06-12 23:45:40 +08:00
cron.ts 修复删除定时任务后 crontab.list 未同步导致订阅更新无法重新注册脚本 2026-06-27 11:34:21 +08:00
cronView.ts 修复系统设置数据未初始化 2024-06-12 13:53:45 +08:00
dependence.ts 修复国际化文案 2026-06-21 23:53:32 +08:00
env.ts feat: add environment variable labels 2026-05-23 23:21:38 +08:00
grpc.ts grpc 服务增加证书校验 2026-06-13 20:16:49 +08:00
health.ts 修改服务启动逻辑 2025-05-07 09:30:00 +08:00
http.ts fix IPv6 connectivity 2026-05-06 01:29:01 +08:00
log.ts 脚本管理和日志管理支持下载 2025-03-13 00:22:24 +08:00
metrics.ts 修改服务启动逻辑 2025-05-07 09:30:00 +08:00
notify.ts 修复国际化文案 2026-06-21 23:53:32 +08:00
open.ts 更新国际化文案 2026-06-11 23:18:45 +08:00
schedule.ts 修复模块注入 2025-10-26 22:32:03 +08:00
script.ts 脚本管理和日志管理支持下载 2025-03-13 00:22:24 +08:00
sock.ts 修复调试脚本日志丢失 2023-09-22 00:46:16 +08:00
sshKey.ts 修复获取定时任务参数 2026-06-13 00:09:31 +08:00
subscription.ts 修复国际化文案 2026-06-21 23:53:32 +08:00
system.ts 修复国际化文案 2026-06-21 23:53:32 +08:00
user.ts 修复国际化文案 2026-06-21 23:53:32 +08:00