我在Django工作并安装了django-celery。 celery守护程序在我的本地服务器上运行并接受/执行任务。
对我来说,最后一件事是创建一个任务,将消息发送到另一台服务器上的AMPQ代理。代理配置在我的settings.py文件中,但我不清楚如何连接到AMPQ服务器并构造消息(带有头和json编码的有效负载。
现在我开始怀疑我是否需要运行芹菜只是为了向外部AMQP经纪人发送消息。
更新
我正在使用Kombu发布到AMQP代理,看来我可以使用正确的exchange,routing_key和exchange_type成功建立Publisher连接。我的消息必须包含一个包含三个键的标题:值对和一个json编码的有效负载。我不清楚如何构建消息。
答案 0 :(得分:1)
Celery有一个客户端 - 服务器架构。客户端向代理发布消息,服务器端消耗来自代理的消息。
您不需要运行芹菜来发布消息。要向代理发送消息,只需在settings.py配置文件中配置BROKER_URL选项,并调用任务的delay / apply_async方法。 Celery将构建并发布所需的消息。
但您需要在服务器端启动Celery worker(使用celeryd或celeryd_multi命令)来使用来自代理的消息。