如何使用node-cron在指定时段(9:00-15:30)按间隔调度任务?
调整node-cron表达式实现指定时段调度
你的需求是周一至周五9:00 AM到3:30 PM每10秒执行任务,当前代码的问题在于小时范围到16点(下午4点),且时间粒度不符合每10秒的要求,需要针对时间范围和执行间隔做精准调整。
核心思路
node-cron的表达式格式为 秒 分 时 日 月 周,我们需要拆分两个时间区间来覆盖需求:
- 9:00 AM - 2:59 PM(小时9-14):整小时内任意分钟都允许执行
- 3:00 PM - 3:30 PM(小时15):仅允许0-30分钟执行
同时将执行间隔设为每10秒(秒位写*/10)。
调整后的代码
const job = cron.schedule('*/10 0-59 9-14 * * 1-5, */10 0-30 15 * * 1-5', () => { console.log(new Date()); }, { timezone: 'Asia/Kolkata' });
表达式说明
*/10 0-59 9-14 * * 1-5:周一至周五,9点到14点(下午2点),每10秒执行一次*/10 0-30 15 * * 1-5:周一至周五,15点(下午3点)的0-30分钟,每10秒执行一次
两个规则用逗号分隔,node-cron会自动合并执行逻辑,确保任务只在你指定的时段内按间隔运行。
内容的提问来源于stack exchange,提问作者Arunprasath
相关产品推荐
相关产品推荐

