2

私は Django プロジェクトのメッセージ キューに Carrot を使用しており、チュートリアルに従っていますが、正常に動作します。しかし、この例はコンソールで実行されます。これを Django でどのように適用するのか疑問に思っています。models.py のモデルの 1 つから呼び出しているパブリッシャー クラスなので、問題ありません。しかし、消費者クラスをどこに置くべきかわかりません。

.wait() でそこに座っているだけなので、いつでも実行してメッセージをリッスンできるようにインスタンス化する必要があるポイントや場所がわかりません!

ありがとう!

4

2 に答える 2

5

コンシューマーは、チュートリアルから引用した例の単なる長時間実行スクリプトです。キューからメッセージをポップし、何かを実行してから、wait を呼び出し、別のメッセージが来るまで基本的にスリープ状態になります。

このスクリプトは、アカウントのコンソールで実行されているか、UNIX デーモンまたは win32 サービスとして構成されている可能性があります。本番環境では、停止した場合に再起動できることなどを確認する必要があります (ここではデーモンまたはサービスがより適切です)。

または、待機呼び出しを取り出して、Windows スケジューラーの下で、または cron ジョブとして実行することもできます。そのため、n 分ごとにキューを処理して終了します。アプリケーションの要件、キューがいっぱいになる速さなどによって異なります。

それは理にかなっていますか、それともあなたが求めていたことを完全に見逃していましたか?

于 2009-07-11T02:16:28.137 に答える
0

タスクの処理を行っている場合は、セロリを確認してください:http: //github.com/ask/celery/

于 2009-07-21T16:17:45.990 に答える