WatchScheduler.json 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. {
  2. "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json",
  3. // G-08 自动监控调度配置。只承载"appsettings 锚点"一类配置项(见 G08-02 配置分类表)。
  4. // 其余参数分别落在属性固化(IntervalMinutes)、代码常量(TenantId / FactoryId / FailurePauseThreshold)
  5. // 与 Admin.NET 作业管理(Enabled)等锚点上,不在本文件承载。
  6. "WatchScheduler": {
  7. // 调试入口 POST /api/aidop/s8/watch-debug/run-once 启用开关。
  8. // 默认 false(生产安全);dev/test 通过 appsettings.Development.json 覆写为 true。
  9. "DebugEndpointEnabled": false
  10. },
  11. // S8-SCHEDULER-P0-BLEEDING-STOP-CONFIG-1:环境级调度总开关。
  12. // 默认 true 保持既有行为;生产侧紧急止血可通过部署环境变量
  13. // AIDOP_SCHEDULER_ENABLED=false 强制关闭所有 S8 Job 执行入口。
  14. // 注:因 Furion 配置链将 Configuration/*.json 加载在 ASP.NET Core 环境变量
  15. // provider 之后,本开关的 env override 走 Environment.GetEnvironmentVariable
  16. // 直接读取,命名固定采用 AIDOP_* 前缀。
  17. "Scheduler": {
  18. "Enabled": true
  19. },
  20. // S8-SCHEDULER-P0-BLEEDING-STOP-CONFIG-1:S8 业务调度开关 + 主调度业务节拍。
  21. // Enabled 默认 false:开发环境与未显式开启的部署一律不执行 S8 Job 业务体。
  22. // 生产开启路径仅保留为部署侧环境变量 AIDOP_S8_SCHEDULER_ENABLED=true。
  23. // WatchTickIntervalMs 默认 300000 (5 分钟):S8WatchSchedulerJob 业务执行节拍;
  24. // 业务节拍可通过 AIDOP_S8_SCHEDULER_WATCH_TICK_MS 覆盖(下限 60000 ms)。
  25. // 硬件唤醒拍仍由 [Period(60000, ...)] 注解承载,不在本文件配置。
  26. "S8": {
  27. "Scheduler": {
  28. "Enabled": false,
  29. "WatchTickIntervalMs": 300000
  30. },
  31. // S8-P0-2-PER-JOB-KILL-SWITCH-1:单 Job 开关。生效语义为三级与:
  32. // Scheduler:Enabled(环境级,默认 true)
  33. // && S8:Scheduler:Enabled(S8 业务级 master kill switch,默认 false)
  34. // && S8:{Job}:Enabled(本节,默认 false)
  35. // 任一为 false,对应 Job 在 ExecuteAsync 第一步即 return,不访问任何 service / DB;
  36. // 即便 [Period(..., RunOnStart = true)](ActiveFlowStuckScan)在启动瞬间触发也同样早退
  37. // —— 已由 2026-09-03 的 Case B / Case D 运行态实测确认。
  38. // 因此**不再需要、也不得依赖**「先暂停 trigger 再重启」作为隔离手段(该手段实测跨重启不可靠)。
  39. // 各 env override:AIDOP_S8_WATCH_SCHEDULER_ENABLED /
  40. // AIDOP_S8_TIMEOUT_AUTO_ESCALATION_ENABLED /
  41. // AIDOP_S8_ACTIVE_FLOW_STUCK_SCAN_ENABLED
  42. "WatchScheduler": {
  43. "Enabled": false
  44. },
  45. "TimeoutAutoEscalation": {
  46. "Enabled": false
  47. },
  48. "ActiveFlowStuckScan": {
  49. "Enabled": false
  50. }
  51. }
  52. }