Node.js: Cron 任务
使用 cron 任务在 Node.js 中有效地自动化任务
👋 欢迎查阅 Stackhero 文档!
Stackhero 提供即开即用的 Node.js 云环境,助您高效开发:
- 只需一次简单的
git push,几秒钟即可部署到生产环境,无需额外工具或手动配置。- 支持自定义域名,并自动配置 HTTPS 证书,让您的应用安全无忧,无需额外设置。
- 自动备份、一键升级以及可预测的定价,让您专注于功能开发,基础设施交由 Stackhero 托管。
- 基于专属私有基础设施,保障性能稳定与高水平安全。
节省时间,降低运维负担:只需几分钟,您的应用即可在 Stackhero 的 Node.js 云主机 上运行。
在开发 Node.js 应用程序时,自动化重复性任务(如发送计划邮件、清理过期数据或执行定期维护)可以显著提高效率和可扩展性。cron 模块可在 npm 上获取(cron 模块在 npm 上),提供了一种简单有效的方法来实现这种自动化。
注意:虽然
node-cronnpm 模块是另一个可用于 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 语法
cron 模块使用标准 UNIX cron 语法来定义调度。以下是一些常见示例:
- 每秒:
* * * * * * - 每30秒:
*/30 * * * * * - 每10分钟:
0 */10 * * * * - 每2小时:
0 0 */2 * * *
其他资源
您现在可以使用 cron 模块在 Node.js 应用程序中自动化任务。有关更详细的信息和示例,请访问官方 cron 模块库并查看示例目录。