使用Node.js实现定时任务可通过原生方法或第三方库,简单任务可用setInterval,复杂调度推荐node-cron,支持类似crontab的语法,如每5分钟执行“/5 ”,每周一上午9点执行“0 0 9 * 1”;结合Express可构建全栈自动化服务,通过接口管理任务;高可靠性场景建议Bull+Redis实现任务队列,支持持久化、重试与分布式部署;配合PM2等工具实现后台运行,从小型脚本到企业级系统均可覆盖。
在Node. js 中实现定时任务,不需要依赖 浏览器 环境的setInterval或setTimeout就能完成自动化操作。结合现代工具和库,可以轻松构建全栈JavaScript自动化系统,比如定时抓取数据、发送邮件、清理日志等。 使用原生setTimeout和setInterval 最基础的方式是使用JavaScript提供的 setTimeout 和 setInterval 。适用于简单的周期性任务。 例如每10秒打印一次时间:
setInterval(() => {
console.log('当前时间:', new Date());
}, 10000);
npm install node-cron
const cron = require('node-cron');
cron.schedule('0 1 * * *', () => {
console.log('开始执行每日备份任务...');
// 这里调用数据库导出、文件压缩等逻辑
});
// app.js 中启动定时任务
require('./tasks/emailReminder'); // 自动注册提醒任务
require('./tasks/dataSync'); // 数据同步任务
app.listen(3000, () => {
console.log('服务已启动,定时任务注册完成');
});
