1

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

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

现在我开始怀疑我是否需要运行 celery 只是为了向外部 AMQP 代理发送消息。

更新:

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

4

1 回答 1

1

Celery has a client-server architecture. Client side publishes messages to a broker and the server side consumes messages from the broker.

You don't need running celery to publish messages. To send messages to the broker just configure BROKER_URL option in settings.py configuration file and call delay/apply_async methods of your tasks. Celery will construct and publish the required messages.

But you need to launch Celery worker (with celeryd or celeryd_multi command) on server side to consume messages from the broker.

于 2012-03-07T12:27:33.443 回答