简介
symphony-task 是一个基于 Node.js 的任务调度器,可以用于执行各种类型的定时任务,包括但不限于 HTTP 请求、定时发送邮件、爬虫等。它支持多进程、高可用,可以极大地简化任务调度的开发和部署流程。
安装
在使用 symphony-task 之前,需要先安装 Node.js 和 npm。然后,在终端窗口输入以下命令即可安装 symphony-task:
npm install symphony-task --save
使用
创建任务
使用 symphony-task,首先需要创建一个任务。每个任务都是一个 JSON 对象,包含以下属性:
name
:任务名称,必填。cron
:定时表达式,必填。可以使用 cron 表达式 来指定定时规则。handler
:任务处理函数,必填。处理函数可以是一个普通的函数,也可以是一个类的静态方法等。context
:处理函数上下文,可选。如果处理函数需要访问外部依赖,可以通过上下文参数来传递依赖。retry
:重试次数,可选。如果任务执行失败,symphony-task 会自动进行重试,可以通过该属性来指定重试次数。timeout
:超时时间,可选。如果任务执行时间超过该时间,symphony-task 会自动将任务标记为失败。
下面是创建一个任务的示例代码:
-- -------------------- ---- ------- ----- ---- - - ----- -------------- ----- -- - - - - --- -------- ----- -- -- - ------------------- --------- -- -------- --- ------ -- -------- ----- --
注册任务
创建任务后,需要将任务注册到 symphony-task 中。可以通过 schedule
方法来注册任务:
const { TaskManager } = require("symphony-task"); const manager = new TaskManager(); manager.schedule(task);
这样就将任务注册到了 symphony-task 中。symphony-task 会根据定时表达式自动调度任务,并在任务执行完成后自动进行重试或标记为失败。如果需要取消任务,可以通过 unschedule
方法来取消已注册的任务:
manager.unschedule("hello_world");
可以使用 list
方法来查看所有已注册的任务:
console.log(manager.list());
启动 symphony-task
最后一步是启动 symphony-task。调用 start
方法即可开始调度任务:
manager.start();
symphony-task 会依照定时表达式自动调度任务,直到程序退出或调用 stop
方法为止:
manager.stop();
指导意义
symphony-task 可以用于管理各种类型的定时任务,能够大大简化任务调度的开发和部署流程,并提高任务执行的稳定性。如果您需要进行定时任务调度,推荐使用 symphony-task。
总结
本文介绍了 npm 包 symphony-task 的使用教程,包括创建任务、注册任务和启动 symphony-task 等操作,同时探讨了 symphony-task 的指导意义。如果您对 symphony-task 有更多的问题或建议,欢迎到官方文档或 GitHub 仓库提出。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005560f81e8991b448d306b