Logo Vincent
返回文章列表

Node.js-WebServer开发实践:定时任务

Node.js
Node.js-WebServer开发实践:定时任务

【前言】

定时任务是服务端开发中的必备能力,

在nodejs web server的开发过程中,

可以使用cron实现定时任务能力,

【qiao-timer】

cron的使用可以查看官网文档,

这里封装了一个npm包,欢迎使用:https://code.insistime.com/#/qiao-timer

使用也很简单,

1. 配置一个符合cron规范的是时间

2. 设置好定时需要执行的函数

const { run } = require('qiao-timer');

const time = '*/1 * * * * *';
const tick = () => {
  console.log(new Date());
};

console.log('-' + new Date());
run(time, tick);

其中time符合cron规范,

常见的cron规范有5位,

这里cron npm包的time规范有6位,

第一位是秒,规则和其他几位都一样,

快速编辑cron,可以使用这个网站: https://crontab.guru/

这里输入规则,会提示实际执行的实现,

例如输入

5 4 * * *

会提示每天的4点05分执行,

【qiao-z中使用】

qiao-z是一个极简的nodejs web server框架,

详见: https://qiao-z.vincentqiao.com/#/

在qiao-z中可以很方便的使用qiao-timer实现定时任务,

1. 初始化时传入cron插件

// options
const options = {
  cron: require('qiao-timer'),
};

// app
const app = qz(options);

2. 开发*Task.js文件,qiao-z启动时会自动扫描Task.js结尾的文件

exports.time = '*/1 * * * * *';
exports.tick = function () {
  console.log(1);
};

如上,就是每秒执行一次的定时任务,任务是打印日志

3. 如果需要立即执行一次任务,可以使用如下代码

exports.runAndInit = true;
exports.time = '*/1 * * * * *';
exports.tick = function () {
  console.log(1);
};

【总结】

1. cron介绍,https://www.npmjs.com/package/cron

2. qiao-timer介绍,https://code.insistime.com/#/qiao-timer  

3. qiao-z中使用qiao-timer插件, https://qiao-z.vincentqiao.com/#/plugins/cron

© 2026 Vincent. 保留所有权利。