按消费者分配芹菜工人

时间:2019-01-22 15:44:24

标签: python rabbitmq celery


这是我提出问题的背景。
我们有一个将xml转换为api调用的转换器。
我们有很多客户在转换xml,现在有些客户不得不等到客户完成100多个xml文件的转换。
我们有芹菜和rabbitmq一起工作

我想要实现的是:
将所有芹菜工人分配给一个客户,直到另一位客户发送xml的 如果队列中还有其他客户,请将一半的芹菜工人分配给其他客户。

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

1 个答案:

答案 0 :(得分:1)

关于您要实现的目标-我认为对于Celery来说太复杂了。

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

但是,另一个并非如此简单的选择可能是一个不错的解决方案,它是为每个客户使用单独的RabbiMQ virtual host。 在这种情况下,我无法告诉您如何完全做到这一点,但这可能是您的出发点。