Skip to content

[Bug]Cron任务双触发——同一任务在预定时间前10分钟被提前触发 #2556

Description

@aqswzxgao

环境信息

  • OS:WINDOWS
  • Node.js 版本:v24.19.0
  • HanaAgent 版本:v0.450.0

问题描述
Cron任务调度器存在双触发问题:任务在预定时间前约10分钟被提前执行一次,然后在预定时间再次执行,导致同一任务每天执行两次。

复现步骤

  1. 配置cron任务,设置执行时间为 15 10 * * 1-5(每天10:15)
  2. 等待scheduler执行
  3. 观察日志:任务会在 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 → 第二次完成

可能原因

  1. Scheduler检查窗口过宽,把当前分钟±5分钟的区间都视为"待执行"
  2. 启动时补偿逻辑误触发
  3. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions