2012-03-06 1 views
1

私はDjangoで働いていて、django-celeryをインストールしました。セルラーデーモンがローカルサーバー上で実行され、タスクを受け入れ/実行しています。私はdjango-celeryとamqpメッセージブローカーの周りに頭を浮かべて助けが必要です

最後に、別のサーバーのAMPQブローカーにメッセージを送信するタスクを作成します。ブローカの設定はsettings.pyファイルにありますが、AMPQサーバへの接続方法とメッセージ(ヘッダとjsonエンコードされたペイロードを使用したメッセージの作成方法についてはわかりません)

そして今私は来ました私もちょうど、外部AMQPブローカーにメッセージを送信するためにセロリを実行する必要があるかどうかを疑問に思う

UPDATE:

私はAMQPブローカーに発行する昆布を使用していて、それは私がすることができます表示されます正しい交換、routing_keyとexchange_typeを使用してPublisher接続を確立してください。私のメッセージは、3つのキー:値のペアとjsonでエンコードされたpaylo広告。私はメッセージをどのように構築するかは不明です。

答えて

1

セロリにはクライアント/サーバーアーキテクチャがあります。クライアント側はメッセージをブローカに発行し、サーバ側はメッセージをブローカから消費します。

メッセージを公開するためにセロリーを実行する必要はありません。ブローカにメッセージを送信するには、settings.py設定ファイルにBROKER_URLオプションを設定し、タスクのdelay/apply_asyncメソッドを呼び出します。セロリは必要なメッセージを作成して公開します。

しかし、ブローカからのメッセージを消費するには、サーバー側でCelerraワーカー(celerydまたはceleryd_multiコマンド)を起動する必要があります。

+0

メッセージを作成する方法については、私に良いプライマリを教えてください。 – wmfox3

+0

https://github.com/ask/celery/blob/master/celery/app/amqp.py手動でメッセージを作成する場合、なぜセロリを使用したいのですか? – mher

+0

それは私の混乱の原因です。私はamqpメッセージブローカーにメッセージを送信する必要があり、私はセロリの道を導かれたdjangoの研究をしています。それは興味深い転向でしたが、メッセージを手動で送信するには、ちょうどKombuが必要です。 – wmfox3

関連する問題