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

相关推荐

Node.js-WebServer开发实践:使用autocannon进行接口压测

【前言】 AutoCannon是基于Node.js的接口压测工具, https://www.npmjs.com/package/autocannon 【安装】 【cli使用】 AutoCannon可以通过cli的方式使用, 其中各参数的含义可以直接输入autocannon查看, 例如10个并发连接,

Node.js-开发实践:下载文件

【前言】 下载文件是Node.js中最常见的功能, 但实际开发中下载文件也会隐藏各种各样的坑。 【原始代码】 如果在网络搜索Node.js下载文件代码, 大概会搜到类似下面的代码片段, 本文从这里开始,陆续优化下载文件这个功能。 上面的代码片段可以看到: 1.兼容了Node.js原生的http和ht

Node.js-开发实践:使用健壮的FS

【前言】 fs模块是nodejs中最常见的模块, 可是fs的使用经常会有各种意想不到的坑。 【高性能FS】 其中之一是没有使用高性能的fs, 导致在electron应用中造成卡顿, fs模块有3种使用方式, callback方式 1\. 书写会导致回调地狱 2\. 体现nodejs事件驱动,非阻塞i

Node.js-开发实践:高性能FS

【前言】 nodejs的fs模块相信大家都不陌生, 本文对比一下fs模块的三种使用方式。 【fs的三种使用方式】 nodejs官方提供了fs的三种使用方式, https://nodejs.org/dist/latestv18.x/docs/api/fs.htmlpromiseexample call

Node.js-WebServer开发实践:使用PM2-Cluster模式提升接口QPS

【前言】 pm2是nodejs进程管理工具, https://pm2.keymetrics.io/ 介绍详见之前的一篇文章: https://blog.csdn.net/uikoo9/article/details/79018750 , 本文介绍下pm2的cluster模式, 并使用pm2的clus

Node.js-WebServer开发实践:获取公网IP

【前言】 在nodejs server开发实践中,在一些场景下需要获取公网ip, 而nodejs中默认的获取ip的方法,只能获取本地的ip, 而无法获取公网ip,本文介绍如何获取公网ip 【服务端获取公网ip】 在服务端获取公网ip比较简单, nodejs下可以通过下述方法获取, 但是如果有使用ng

Node.js-WebServer开发实践:本地日志

【前言】 本地日志是服务端开发中必备的能力, 在nodejs web server的开发过程中, 可以使用log4js实现本地日志能力, 【qiaolog】 log4js的使用可以查看官网文档, 这里封装了一个npm包,欢迎使用: https://www.npmjs.com/package/qiao

Node.js-WebServer开发实践:上传文件

【前言】 文件上传是服务端开发中的必备能力, 在nodejs web server的开发过程中, 可以使用formidable实现文件上传能力, 【qiaozupload】 formidable的使用可以查看官网文档, 这里封装了一个npm包,欢迎使用: https://code.insistime

Node.js-开发实践:图片处理

【前言】 使用nodejs的过程中会遇到一些处理图片的场景, 比如上传图片时进行压缩, 或者nodejs开发客户端本处理图片等, 本文介绍下nodejs常见的图片处理操作。 【常见图片处理库】 nodejs常见的图片处理库如下, 可以看到sharp从各方面都遥遥领先 npm包 github地址 gi

一篇文章开发Node.js-WebServer

【前言】 Node.js的服务端框架很多,耳熟能详的有express,koa等, 本文从零到一开发一个Node.js的web server。 https://nodejs.org/en/ https://expressjs.com/ https://koa.bootcss.com/ 【http】 要

© 2026 vincentqiao.com . 保留所有权利。