数据库插件

This commit is contained in:
robin
2022-06-03 15:18:47 +08:00
parent 8150466cbd
commit ba9ca43729
25 changed files with 123 additions and 219 deletions
+10
View File
@@ -0,0 +1,10 @@
module.exports = {
path:"app/*/schedule/*.js",
bullmq:{
port: 6379, // Redis port
host: "192.168.1.26", // Redis host
// username: "", // needs Redis >= 6
password: "9715115286",
db: 0, // Defaults to 0
},
}
+38
View File
@@ -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,
})
}
})
}
+9
View File
@@ -0,0 +1,9 @@
const {Queue, QueueScheduler, Worker,QueueEvents} = require("bullmq")
const config = require("./config")
module.exports = {
Queue: (name) => new Queue(name, {connection: config.bullmq}),
QueueScheduler: (name) => new QueueScheduler(name, {connection: config.bullmq}),
QueueEvents: (name) => new QueueEvents(name, {connection: config.bullmq}),
Worker: (name, ops) => new Worker(name, ops, {connection: config.bullmq}),
Job: (ops) => new Job(ops, {connection: config.bullmq}),
}