首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在多个应用程序中使用芹菜队列

在多个应用程序中使用芹菜队列
EN

Stack Overflow用户
提问于 2017-07-18 11:18:58
回答 1查看 2.3K关注 0票数 6

如何在多个应用中使用相同名称的芹菜队列?

我有一个具有N个客户端数据库的应用程序,所有这些数据库都需要在特定队列M上处理芹菜任务。

对于每个客户端数据库,我都有一个单独的celery worker,我启动时如下所示:

代码语言:javascript
运行
复制
celery worker -A client1 -n client1@%h -P solo -Q long
celery worker -A client2 -n client2@%h -P solo -Q long
celery worker -A client3 -n client3@%h -P solo -Q long

当我同时运行所有的工人,并试图启动一个任务到client1时,我发现它似乎从来没有执行过。然后,我杀死了除第一个工人之外的所有工人,现在第一个工人接收并执行任务。事实证明,即使每个工作者的应用程序使用不同的BROKER_URL,使用相同的队列也会导致他们窃取彼此的任务。

这让我很惊讶,因为如果我不指定-Q,这意味着从“默认”队列中提取芹菜,这种情况就不会发生。

如何通过自定义队列防止这种情况?在队列名称中包含客户端ID是唯一的解决方案吗?或者有更“合适”的解决方案?

EN

回答 1

Stack Overflow用户

发布于 2017-09-19 15:32:53

对于多个应用程序,我使用不同的Redis数据库,例如

代码语言:javascript
运行
复制
redis://localhost:6379/0
redis://localhost:6379/1

等。

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

https://stackoverflow.com/questions/45156900

复制
相关文章

相似问题

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