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

Node.js每周定时任务调度咨询:如何执行周一12点指定函数

Node.js 每周一12点执行任务的实现方案

方案一:无需第三方库的简易实现

如果你不想额外安装依赖,用Node.js自带的定时器和日期处理就能搞定核心逻辑。思路是先算出当前时间到下周一12点的时间差,触发第一次执行后,再按每周的间隔循环调度,这样就能保证准点运行。

代码示例:

function executeMeWeeklyAt1200PMMonday() {
  console.log('每周一12点的任务执行啦!');
  // 这里放你的业务逻辑代码
}

function scheduleWeeklyTask() {
  const now = new Date();
  // 计算距离下周一的天数(周一的星期值是1,周日为0)
  let daysUntilMonday = (1 - now.getDay() + 7) % 7;
  // 如果今天就是周一且已经过了12点,就安排到下周一
  if (daysUntilMonday === 0 && now.getHours() >= 12) {
    daysUntilMonday = 7;
  }

  // 设置下一次执行的时间点
  const nextExecution = new Date(now);
  nextExecution.setDate(now.getDate() + daysUntilMonday);
  nextExecution.setHours(12, 0, 0, 0); // 清零分、秒、毫秒

  // 计算需要等待的毫秒数
  const timeUntilNext = nextExecution.getTime() - now.getTime();

  // 第一次延迟执行
  setTimeout(() => {
    executeMeWeeklyAt1200PMMonday();
    // 之后每隔一周重复执行
    setInterval(executeMeWeeklyAt1200PMMonday, 7 * 24 * 60 * 60 * 1000);
  }, timeUntilNext);
}

// 启动调度
scheduleWeeklyTask();

注意:这种方式如果服务重启会中断任务,要是需要持久化执行,建议结合系统级定时任务(比如Linux的crontab)或者用第三方库。

方案二:使用第三方调度库(更省心)

如果觉得自己处理日期计算容易踩坑,用成熟的调度库肯定更稳妥,下面推荐两个常用的:

1. node-schedule

这个库支持灵活的时间规则配置,上手简单:
先安装依赖:

npm install node-schedule

代码示例:

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

function executeMeWeeklyAt1200PMMonday() {
  console.log('每周一12点的任务执行啦!');
  // 业务逻辑代码
}

// 定义调度规则:每周一12点0分0秒
const rule = new schedule.RecurrenceRule();
rule.dayOfWeek = 1;
rule.hour = 12;
rule.minute = 0;
rule.second = 0;

// 启动任务调度
schedule.scheduleJob(rule, executeMeWeeklyAt1200PMMonday);

2. node-cron

这个库基于Cron表达式,熟悉Linux定时任务的话会很顺手:
先安装依赖:

npm install node-cron

代码示例:

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

function executeMeWeeklyAt1200PMMonday() {
  console.log('每周一12点的任务执行啦!');
  // 业务逻辑代码
}

// Cron表达式格式:秒 分 时 日 月 周(周一对应1)
// 这里表示每周一12点0分0秒执行
cron.schedule('0 0 12 * * 1', executeMeWeeklyAt1200PMMonday);

这两个库都处理了时区、时间偏移等细节问题,还支持任务暂停、重启等操作,适合生产环境使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:29:26