Node.js 中运行定时任务
2023-09-14 08:59:53 时间
cron 是一个定时执行工具,可以在无需人工干预的情况下运行
安装
$ npm install -g cron
使用
const cronJob = require("cron").CronJob;
//每秒钟执行一次
new cronJob('* * * * * *', function () {
//your job code here
}, null, true, 'Asia/Chongqing');
//每隔30秒执行一次,会在0秒和30秒处执行
new cronJob('*/30 * * * * *', function () {
//your job code here
}, null, true, 'Asia/Chongqing');
//从早上8点到下午18点,每隔半个小时执行一次,会在0分和30分处执行
new cronJob('* */30 8-18 * * *', function () {
//your job code here
}, null, true, 'Asia/Chongqing');
//在每天的10点和18点的第26分钟各执行一次
new cronJob('* 26 10,18 * * *', function () {
//your job code here
}, null, true, 'Asia/Chongqing');
不立即执行,人工启动
const jobid = new cronJob('* 26 10,18 * * *', function () {
//your job code here
}, null, false, 'Asia/Chongqing'); // Asia/Shanghai
jobid.start();
cron 表达式
顺序 | 秒 | 分钟 | 小时 | 日期 | 月份 | 星期 | 年(可选) |
---|---|---|---|---|---|---|---|
取值 | 0-59 | 0-59 | 0-23 | 1-30(31) | 1-12 | 1-7 | 1970-2099 |
允许特殊字符 | ,-*/ | ,-*/ | ,-*/ | ,-*/?LWC | ,-*/ | ,-*/L#C | , - * / |
字段含义
*:代表所有可能的值
-:指定范围
,:列出枚举 例如在分钟里,"5,15"表示5分钟和20分钟触发
/:指定增量 例如在分钟里,"3/15"表示从3分钟开始,没隔15分钟执行一次
?:表示没有具体的值,使用?要注意冲突
L:表示last,例如星期中表示7或SAT,月份中表示最后一天31或30,6L表示这个月倒数第6天,FRIL表示这个月的最后一个星期五
W:只能用在月份中,表示最接近指定天的工作日
#:只能用在星期中,表示这个月的第几个周几,例如6#3表示这个月的第3个周五
示例
0 * * * * ? 每1分钟触发一次
0 0 * * * ? 每天每1小时触发一次
0 0 10 * * ? 每天10点触发一次
0 * 14 * * ? 在每天下午2点到下午2:59期间的每1分钟触发
0 30 9 1 * ? 每月1号上午9点半
0 15 10 15 * ? 每月15日上午10:15触发
*/5 * * * * ? 每隔5秒执行一次
0 */1 * * * ? 每隔1分钟执行一次
0 0 5-15 * * ? 每天5-15点整点触发
0 0/3 * * * ? 每三分钟触发一次
0 0 0 1 * ? 每月1号凌晨执行一次
可以在 http://cron.qqe2.com/中验证 cron 表达式
相关文章
- Module build failed (from ./node_modules/babel-loader/lib/index.js)
- 2021了,真的不要再说 Node.js 是一门编程语言了「建议收藏」
- 图解 Node.js 的核心 event-loop
- 【Node.js】1399- 3 分钟掌握 Node.js 版本的区别
- Node.js 安全最佳实践
- 比 Node.js 快三倍,新 JavaScript 运行时 Bun 火了
- Node.js的net模块详解编程语言
- HTML JS 数据校验详解编程语言
- 版本Linux下查看Node版本号的方法(linux查看node)
- 快速在Linux平台上安装Node.js(node安装linux)
- 数据Node.js实现MySQL数据的同步更新(node同步mysql)
- Discovering the Power of Node.js on Linux: An Introduction(nodejslinux)
- 采用node.js封装mssql储存过程的实践(node mssql封装)
- 使用Node.js链接/操作MS SQL数据库(node mssql使用)
- (JS实现)MapBar中坐标的加密和解密的脚本
- JS去前后空格大全(IE9亲测)
- SOSO地图JS画出标注和中心点以html形式运行
- 客户端js判断文件类型和文件大小即限制上传大小
- 判断JS对象是否拥有某种属性的两种方式
- JS中的数组的sort方法使用示例
- node.js中的fs.lchown方法使用说明
- node.js中的fs.rmdirSync方法使用说明
- Node.js开发之访问Redis数据库教程
- node.js中的forEach()是同步还是异步呢
- 初识Node.js
- Windows8下搭建Node.js开发环境教程