环境信息
- OS:WINDOWS
- Node.js 版本:v24.19.0
- HanaAgent 版本:v0.450.0
问题描述
Cron任务调度器存在双触发问题:任务在预定时间前约10分钟被提前执行一次,然后在预定时间再次执行,导致同一任务每天执行两次。
复现步骤
- 配置cron任务,设置执行时间为
15 10 * * 1-5(每天10:15)
- 等待scheduler执行
- 观察日志:任务会在
10:05 提前触发,然后在 10:15 再次触发
期望行为
实际行为
任务1(预定 10:15):
10:05:45 → 第一次触发(提前10分钟)
10:07:21 → 第一次完成
10:15:31 → 第二次触发(正确时间)
10:17:42 → 第二次完成
任务2(预定 14:45):
14:35:03 → 第一次触发(提前10分钟)
14:37:36 → 第一次完成
14:45:03 → 第二次触发(正确时间)
14:48:17 → 第二次完成
可能原因
- Scheduler检查窗口过宽,把当前分钟±5分钟的区间都视为"待执行"
- 启动时补偿逻辑误触发
- UTC与北京时间转换精度问题
日志 / 截图
[10:05:45] cron: run XX (studio_job_7)
[10:07:21] cron: job success studio_job_7
[10:15:31] cron: run XX (studio_job_7)
[10:17:42] cron: job success studio_job_7
[14:35:03] cron: run XX (studio_job_8)
[14:37:36] cron: job success studio_job_8
[14:45:03] cron: run XX (studio_job_8)
[14:48:17] cron: job success studio_job_8
环境信息
问题描述
Cron任务调度器存在双触发问题:任务在预定时间前约10分钟被提前执行一次,然后在预定时间再次执行,导致同一任务每天执行两次。
复现步骤
15 10 * * 1-5(每天10:15)10:05提前触发,然后在10:15再次触发期望行为
实际行为
任务1(预定 10:15):
10:05:45 → 第一次触发(提前10分钟)
10:07:21 → 第一次完成
10:15:31 → 第二次触发(正确时间)
10:17:42 → 第二次完成
任务2(预定 14:45):
14:35:03 → 第一次触发(提前10分钟)
14:37:36 → 第一次完成
14:45:03 → 第二次触发(正确时间)
14:48:17 → 第二次完成
可能原因
日志 / 截图
[10:05:45] cron: run XX (studio_job_7)
[10:07:21] cron: job success studio_job_7
[10:15:31] cron: run XX (studio_job_7)
[10:17:42] cron: job success studio_job_7
[14:35:03] cron: run XX (studio_job_8)
[14:37:36] cron: job success studio_job_8
[14:45:03] cron: run XX (studio_job_8)
[14:48:17] cron: job success studio_job_8