数据库插件
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/**
|
||||
* 分布式定时任务
|
||||
* 加载schedule文件夹下的任务
|
||||
* https://blog.pincman.com/archives/18/
|
||||
* https://docs.bullmq.io
|
||||
*
|
||||
*/
|
||||
const config = require("./config")
|
||||
// const schedule = require("./schedule")
|
||||
const mq = require("./queue")
|
||||
module.exports = async (app) => {
|
||||
app.mq = mq
|
||||
|
||||
|
||||
const queueName = "boobam_schedule"
|
||||
const queue = mq.Queue(queueName);
|
||||
mq.QueueScheduler(queueName);//处理延时任务
|
||||
await queue.obliterate();//清空所有定时任务
|
||||
const list = await app.load(config.path)
|
||||
//等待所有插件载入完成后,启动Worker
|
||||
app.willReadyList.push(async () => {
|
||||
for (let el of list) {
|
||||
mq.Worker(queueName, async job => {
|
||||
if (job.name===el.parse.name){
|
||||
el.res.fun(app)
|
||||
}
|
||||
});
|
||||
await queue.add(el.parse.name,{},{
|
||||
repeat: el.res.time,
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user