是否可以将开箱即用的Celery与外部API配合使用?

时间:2019-06-05 09:33:10

标签: celery

我发现Celery是使用来自多个Rabbitmq队列的异步事件并通过内部api分散工作负载的理想选择。

是否会有某种开箱即用的配置,可以根据命名队列或消息将作业动态路由到外部API,而配置的数量与每个队列的工作者数量一样少,也许是用于外部api调用的TTL ,确认,死信交换,...​​

我对Python的了解不多,目的是仅维护配置。

2 个答案:

答案 0 :(得分:0)

据我所知,Celery不会使用任意的RabbitMQ消息-只会消耗特定于Celery的消息,因此我认为Celery不适合您上面描述的内容。另一方面,kombu(这是Celery项目之一)可以用于您所说的话。甚至更低级别的py-amqp库(也在Celery的保护下)。

答案 1 :(得分:0)

Celery将使用队列中的所有消息,但是要强制其处理它们,您必须将消息转换为Celery接受的特定JSON格式,否则消息将被丢弃

通常,Celery可能适合以异步方式进行外部API调用,但不适用于消息路由
我建议您看一下Apache Camel框架,该框架实现了EIP,包括死信和消息的TTL