You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在CronJobs中实现毫秒级触发?如何用node cron每500ms执行任务?

关于node-cron实现500ms间隔定时任务的解答

node-cron 本身无法直接实现500ms间隔的定时触发,它的cron表达式最小时间单位为秒,原生仅支持最低1秒的执行间隔。

以下是两种可行的实现方案:

方案1:使用Node.js原生API实现(更推荐)

直接用setInterval即可满足500ms触发的需求,代码如下:

setInterval(() => {
  // 你的业务函数
  console.log("running a task every 500ms");
}, 500);

如果你的业务函数执行耗时可能超过500ms,为了避免任务重叠执行,可改用递归setTimeout的写法:

function execTask() {
  // 你的业务逻辑
  console.log("running a task every 500ms");
  // 任务执行完成后,再间隔500ms触发下一次
  setTimeout(execTask, 500);
}
// 启动首次执行
execTask();

方案2:基于node-cron改造实现(仅适合轻量短耗时任务)

如果必须依赖node-cron能力,可以在每秒触发的回调里拆分两次执行,第一次立即触发,第二次延迟500ms触发:

const cron = require('node-cron');

cron.schedule("*/1 * * * * *", function() {
  // 每秒第0ms执行
  console.log("running a task every 500ms");
  // 每秒第500ms执行
  setTimeout(() => {
    console.log("running a task every 500ms");
  }, 500);
});

注意:该方案存在时间偏移风险,不适合对定时精度要求高、任务执行耗时长的场景。


内容的提问来源于stack exchange,提问作者Kavishka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:15:04