我发现Celery是使用来自多个Rabbitmq队列的异步事件并通过内部api分散工作负载的理想选择。
是否会有某种开箱即用的配置,可以根据命名队列或消息将作业动态路由到外部API,而配置的数量与每个队列的工作者数量一样少,也许是用于外部api调用的TTL ,确认,死信交换,...
我对Python的了解不多,目的是仅维护配置。
答案 0 :(得分:0)
据我所知,Celery不会使用任意的RabbitMQ消息-只会消耗特定于Celery的消息,因此我认为Celery不适合您上面描述的内容。另一方面,kombu(这是Celery项目之一)可以用于您所说的话。甚至更低级别的py-amqp库(也在Celery的保护下)。
答案 1 :(得分:0)
Celery将使用队列中的所有消息,但是要强制其处理它们,您必须将消息转换为Celery接受的特定JSON格式,否则消息将被丢弃
通常,Celery可能适合以异步方式进行外部API调用,但不适用于消息路由
我建议您看一下Apache Camel
框架,该框架实现了EIP,包括死信和消息的TTL