我正在做一个nodejs项目,在这里我需要实现任务排队。我已经为这个选择了带有redis包的bullMq。遵循文档这里
import { Queue, Worker } from 'bullmq'
// Create a new connection in every instance
const myQueue = new Queue('myqueue', { connection: {
host: "myredis.taskforce.run",
port: 32856
}});
const myWorker = new Worker('myworker', async (job)=>{}, { connection: {
host: "myredis.taskforce.run",
port: 32856
}});在深入研究了文档之后,我最后问了一些问题:
在任务和队列中非常新,任何帮助都将受到感谢。
发布于 2022-07-17 05:21:25
员工如何知道从哪个队列中获取任务?
工作者的第一个参数应该是您希望它从其中提取消息的队列的名称。您显示的代码没有正确地执行。但是,这里的文档解释了这一点。
对于整个应用程序,我需要一个工人和队列实例吗?(我认为这取决于您需要的任务和操作的类型),我需要一个处理支付的任务队列。另一个任务队列来处理营销邮件。我不知道如果我们只有一个工人和排队的实例,这将如何工作。但它需要为每一种操作设置标识符,并对每一种操作采取相应的行动。
这取决于你的设计。您可以有一个包含多种类型事物的队列和一个处理它在队列中找到的任何东西的工作人员。
或者,如果希望同时处理作业,则可以创建多个工作人员,这些额外的员工甚至可以处于不同的进程中。
如果我有许多队列和工作者实例,那么一个工作人员如何知道它应该从哪个队列中侦听任务。从上面的代码示例来看,工作人员似乎被命名为myworker,队列称为myqueue。这两者是怎么联系起来的?员工如何知道应该在不与其他队列和工人发生冲突的情况下从该特定队列中侦听作业?
如前所述,工作人员的第一个参数应该是您希望它从其中提取消息的队列的名称。
https://stackoverflow.com/questions/73007923
复制相似问题