@zenweb/schedule
v5.5.1
Published
Zenweb Schedule module
Maintainers
Readme
ZenWeb Schedule module
定时任务模块
依赖模块
- @zenweb/inject
- @zenweb/router
安装
npm i @zenweb/schedule配置
import modSchedule from '@zenweb/schedule';
// ...
app.setup(modSchedule());
// ...使用
import { Schedule } from '@zenweb/schedule';
export class EchoScheduler {
@Schedule('*/1 * * * * *')
echo() {
console.log('task echo');
return 'ok';
}
}配置项
| 配置项 | 类型 | 默认值 | 功能 |
| ----- | --- | ----- | ---- |
| paths | string[] | ['./app/schedule'] | 定时任务控制器加载目录
| patterns | string | **/*.{ts,js} | 定时任务控制器文件匹配规则
| disabled | boolean | false | 是否禁用定时器,可以通过环境变量 ZENWEB_SCHEDULE_DISABLED=1 控制
Core 挂载项
| 挂载项 | 类型 | 功能 | | ----- | --- | ---- | | scheduleRegister | ScheduleRegister | ScheduleRegister 实例
部署注意要点
如果使用多实例部署(例如k8s横向扩展),注意定时任务重复执行问题(因为每个实例都维护着自己的定时任务)
可以分为两个类型实例部署:
- 一个用于请求响应,带有横向扩展,使用环境变量
ZENWEB_SCHEDULE_DISABLED=1关闭定时任务 - 一个用于定时任务,单个实例部署,避免重复执行问题
