2012-03-06 24 views
1

我正在Django工作,並已安裝django芹菜。 celery守護進程正在我的本地服務器上運行並接受/執行任務。需要一些幫助讓我的頭周圍django芹菜和amqp消息經紀人

對我來說,最後一件事是創建一個任務,將消息發送到另一臺服務器上的AMPQ代理。代理配置位於我的settings.py文件中,但我不清楚如何建立與AMPQ服務器的連接並構建消息(使用標頭和json編碼的有效載荷。想知道我是否甚至需要運行芹菜只是將消息發送到外部AMQP代理

更新:

我用海帶發佈到AMQP代理,看來我可以使用正確的exchange,routing_key和exchange_type成功建立發佈者連接。我的消息必須包含一個包含三個鍵值對和一個json編碼的paylo廣告。我不清楚如何構建信息。

回答

1

芹菜有一個客戶端 - 服務器體系結構。客戶端將消息發佈給代理,服務器端則使用來自代理的消息。

您不需要運行芹菜來發布消息。要向代理髮送消息,只需在settings.py配置文件中配置BROKER_URL選項,並在任務中調用delay/apply_async方法。芹菜將構建併發布所需的消息。

但是,您需要在服務器端啓動Celery worker(使用celeryd或celeryd_multi命令)以使用來自代理的消息。

+0

你能指點我一個關於如何構建信息的好的入門書嗎? – wmfox3 2012-03-07 23:09:19

+0

https://github.com/ask/celery/blob/master/celery/app/amqp.py如果您打算手動構建郵件,爲什麼要使用芹菜? – mher 2012-03-08 10:01:01

+0

這是我混亂的根源。我需要將消息發送給amqp消息中介,併爲django進行研究,然後我帶領了芹菜路徑。雖然這是一個有趣的分流,但我真的只需要Kombu手動發送消息。 – wmfox3 2012-03-08 15:31:53