python - 按消费者分发芹菜工人
问题描述
这是我的问题的一点背景。
我们有一个将 xml 转换为 api 调用的转换器。
我们有很多客户转换 xml,现在一些客户必须等到客户完成 100 个 xml 文件的转换。
我们有 celery 与 rabbitmq
我想要实现的是:
将所有 celery 工人分配给一个客户,直到另一个客户发送 xml,如果队列中有另一个客户,则将一半的 celery 工人分配给另一个客户。
有人可以指出我正确的方向吗,我似乎无法弄清楚从哪里开始寻找。对不起我奇怪的句子英语不是我的第一语言。
解决方案
关于你想要达到的目标——我认为对 Celery 来说太复杂了。
concurrency
显而易见的答案是在启动工人时使用选项增加芹菜工人的数量。这很容易做到,您无需更改代码。我会推荐它。
然而,另一个不太容易的选项可能是一个漂亮的解决方案,即为每个客户使用单独的RabbiMQ 虚拟主机。在这种情况下,我无法告诉您如何完全做到这一点,但它可能是您的起点。
推荐阅读
- python - 如何为多个像素放置像素
- reactjs - 哪个框架更适合 UI 测试 React 测试库或 python 机器人框架?
- java - 如何在 Spock Groovy 中模拟 Java 8 函数
- typescript - Vue TypeScript 对象道具类型不正确
- python-3.x - 调用语句返回不同的结果
- angular - 在 ngrx 中删除项目及其子项
- swift - 将 NSMutableAttributedString 应用于文本范围
- mysql - 如何填充缺失日期的数字?
- desktop - Panonlens - 图像未在桌面版本上加载
- azure - 何时使用 Azure Blob 存储与 Azure 文件共享?