我想创建一个Bull队列,并将函数放入队列中吗?有可能吗。
例如:我有
http请求/func1+params->启动函数1(参数(
http请求/func2+params->启动函数2(参数(
http请求/func3+params->启动函数3(参数(
队列名称:MyQueue
如何在MyQueue中处理func1(params(、func2(params。
我不知道如何排队。添加函数。
import Queue from "bull";
const queue = new Queue("myQueue");
const main = async () => {
await queue.add({ name: "John", age: 30 });
};
queue.process((job, done) => {
console.log(job.data);
done();
});
main().catch(console.error);
tnx大量
当将作业发布到队列时,您可以添加参数
,并基于此以不同的方式处理它们
import express from "express";
import Queue from "bull";
const router = express.Router();
const queue = new Queue("myQueue");
router.get("/func1", function (req, res) {
queue.add({ func: "func1", ...req.query.params})
});
router.get("/func2", function (req, res) {
queue.add({ func: "func2", ...req.query.params})
});
router.get("/func3", function (req, res) {
queue.add({ func: "func3", ...req.query.params})
});
queue.process((job, done) => {
switch (job.data.func) {
case "func1":
// do something
break;
case "func2":
// do something else
break;
case "func3":
// do something else
break;
default:
throw new Error(`unexpected func=${job.data.func}`);
done();
});