首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >员工如何知道从哪个队列中获取任务?

员工如何知道从哪个队列中获取任务?
EN

Stack Overflow用户
提问于 2022-07-16 22:03:16
回答 1查看 339关注 0票数 0

我正在做一个nodejs项目,在这里我需要实现任务排队。我已经为这个选择了带有redis包的bullMq。遵循文档这里

代码语言:javascript
复制
  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
}});

在深入研究了文档之后,我最后问了一些问题:

  1. 对于整个应用程序,我需要一个工人和队列实例吗?(我认为这取决于您需要的任务和操作的类型),我需要一个处理支付的任务队列。另一个任务队列来处理营销邮件。我不知道如果我们只有一个工人和排队的实例,这将如何工作。但它需要为每一种操作设置标识符,并对每一种操作采取相应的行动。
  2. 如果我有许多队列和工作者实例,那么一个工作人员如何知道它应该从哪个队列中侦听任务。从上面的代码示例来看,工作人员似乎被命名为myworker,队列称为myqueue。这两者是怎么联系起来的?员工如何知道应该在不与其他队列和工人发生冲突的情况下从该特定队列中侦听作业?

在任务和队列中非常新,任何帮助都将受到感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-17 05:21:25

员工如何知道从哪个队列中获取任务?

工作者的第一个参数应该是您希望它从其中提取消息的队列的名称。您显示的代码没有正确地执行。但是,这里的文档解释了这一点。

对于整个应用程序,我需要一个工人和队列实例吗?(我认为这取决于您需要的任务和操作的类型),我需要一个处理支付的任务队列。另一个任务队列来处理营销邮件。我不知道如果我们只有一个工人和排队的实例,这将如何工作。但它需要为每一种操作设置标识符,并对每一种操作采取相应的行动。

这取决于你的设计。您可以有一个包含多种类型事物的队列和一个处理它在队列中找到的任何东西的工作人员。

或者,如果希望同时处理作业,则可以创建多个工作人员,这些额外的员工甚至可以处于不同的进程中。

如果我有许多队列和工作者实例,那么一个工作人员如何知道它应该从哪个队列中侦听任务。从上面的代码示例来看,工作人员似乎被命名为myworker,队列称为myqueue。这两者是怎么联系起来的?员工如何知道应该在不与其他队列和工人发生冲突的情况下从该特定队列中侦听作业?

如前所述,工作人员的第一个参数应该是您希望它从其中提取消息的队列的名称。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73007923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档