需要一些帮助让我的头围绕django-celery和一个amqp消息经纪人

时间:2012-03-06 16:31:26

标签: django amqp django-celery kombu

我在Django工作并安装了django-celery。 celery守护程序在我的本地服务器上运行并接受/执行任务。

对我来说,最后一件事是创建一个任务,将消息发送到另一台服务器上的AMPQ代理。代理配置在我的settings.py文件中,但我不清楚如何连接到AMPQ服务器并构造消息(带有头和json编码的有效负载。

现在我开始怀疑我是否需要运行芹菜只是为了向外部AMQP经纪人发送消息。

更新

我正在使用Kombu发布到AMQP代理,看来我可以使用正确的exchange,routing_key和exchange_type成功建立Publisher连接。我的消息必须包含一个包含三个键的标题:值对和一个json编码的有效负载。我不清楚如何构建消息。

1 个答案:

答案 0 :(得分:1)

Celery有一个客户端 - 服务器架构。客户端向代理发布消息,服务器端消耗来自代理的消息。

您不需要运行芹菜来发布消息。要向代理发送消息,只需在settings.py配置文件中配置BROKER_URL选项,并调用任务的delay / apply_async方法。 Celery将构建并发布所需的消息。

但您需要在服务器端启动Celery worker(使用celeryd或celeryd_multi命令)来使用来自代理的消息。