首页 > 解决方案 > 按消费者分发芹菜工人

问题描述


这是我的问题的一点背景。
我们有一个将 xml 转换为 api 调用的转换器。
我们有很多客户转换 xml,现在一些客户必须等到客户完成 100 个 xml 文件的转换。
我们有 celery 与 rabbitmq

我想要实现的是:
将所有 celery 工人分配给一个客户,直到另一个客户发送 xml,如果队列中有另一个客户,则将一半的 celery 工人分配给另一个客户。

有人可以指出我正确的方向吗,我似乎无法弄清楚从哪里开始寻找。对不起我奇怪的句子英语不是我的第一语言。

标签: pythonrabbitmqcelery

解决方案


关于你想要达到的目标——我认为对 Celery 来说太复杂了。

concurrency显而易见的答案是在启动工人时使用选项增加芹菜工人的数量。这很容易做到,您无需更改代码。我会推荐它。

然而,另一个不太容易的选项可能是一个漂亮的解决方案,即为每个客户使用单独的RabbiMQ 虚拟主机。在这种情况下,我无法告诉您如何完全做到这一点,但它可能是您的起点。


推荐阅读