Node.js: Cron 任务

使用 cron 任务在 Node.js 中有效地自动化任务

👋 欢迎使用 Stackhero 文档!

Stackhero 提供现成的 Node.js 云 解决方案,具有众多优势,包括:

  • 通过简单的 git push 在几秒钟内 部署您的应用程序。
  • 使用您自己的域名,并享受 HTTPS 证书的自动配置以增强安全性。
  • 享受自动备份一键更新以及简单、透明和可预测的定价带来的安心。
  • 通过专用私有 VM获得最佳的性能和强大的安全性

节省时间简化您的生活:只需 5 分钟即可试用 Stackhero 的 Node.js 云托管 解决方案!

在开发 Node.js 应用程序时,自动化重复性任务(如发送计划邮件、清理过期数据或执行定期维护)可以显著提高效率和可扩展性。cron 模块可在 npm 上获取(cron 模块在 npm 上),提供了一种简单有效的方法来实现这种自动化。

注意:虽然 node-cron npm 模块是另一个可用于 cron 任务的工具,但本指南专注于 cron 模块及其实现。

要在项目中使用 cron 模块,请通过执行以下命令将其作为依赖项包含:

npm install cron

模块安装后,您可以开始在应用程序中调度和管理 cron 任务。以下是一个实际示例:

const cron = require('cron');
const cronJobs = [];

// 优雅地处理应用程序关闭,通过停止所有计划的 cron 任务。
// 在部署新代码或关闭应用程序时,会发送终止信号(SIGTERM)。
// 这确保应用程序在退出前停止所有正在运行的 cron 任务。
process.on('SIGTERM', () => {
  cronJobs.forEach(cronJob => cronJob.stop());
});

// 调度一个每秒执行的 cron 任务。
cronJobs.push(
  new cron.CronJob(
    '* * * * * *', // 调度:每秒
    () => {
      console.log("此消息将每秒出现。");
    },
    null,
    true
  )
);

// 调度一个每分钟执行的 cron 任务。
cronJobs.push(
  new cron.CronJob(
    '0 */1 * * * *', // 调度:每分钟
    () => {
      console.log("此消息将每分钟出现。");
    },
    null,
    true
  )
);

cron 模块使用标准 UNIX cron 语法来定义调度。以下是一些常见示例:

  • 每秒: * * * * * *
  • 每30秒: */30 * * * * *
  • 每10分钟: 0 */10 * * * *
  • 每2小时: 0 0 */2 * * *

您现在可以使用 cron 模块在 Node.js 应用程序中自动化任务。有关更详细的信息和示例,请访问官方 cron 模块库并查看示例目录