2017-05-22 5 views
3

サーバーAとサーバーBの2つのサーバーがあります。サーバーAはdjango Webアプリケーションの実行専用です。多数のデータがあるため、サーバーBでセロリのタスクを実行することにしました。サーバーAとサーバーBは共通のデータベースを使用します。タスクは、サーバーA、webappからモデルに保存後に開始されます。私のdjangoプロジェクトでrabbitmqを使用してこのアイデアを実装する方法別サーバーのDjangoセロリタスク

+0

これは、セロリがどのように動作するのかと全く同じことです。ここでは珍しいことはありません。どこに問題がありますか? –

答えて

3

2つのサーバー、1つのプロジェクトと2つの設定(サーバーごとに1つ)があります。

サーバA(Webサーバ+ウサギ)

サーバB(労働者のための唯一のセロリ)

次に、あなたはどちらの設定で、ブローカーのURLを設定します。このようなもの:

サーバBの設定でサーバAのIPと一致するサーバ。

今のところ、任意のタスクはサーバーAから仮想サーバー/にウサギに送られなければなりません。サーバBで

、あなただけの、セロリワーカーを初期化する必要があり、このような何か:

python manage.py celery worker -Q queue_name -l info 

、それのthats。

シンテシス:Djangoはタスクをキューに入れるためにウサギにメッセージを送信し、セロリの作業者はタスクを実行するメッセージを要求します。

私の英語のために申し訳ありません。

挨拶。