1

django celeryを使用してプロジェクトを開始し、「djcelery.urls」によって提供されるタスクURLに対してajax呼び出しを行っています。

このデータについていくつか知りたいのですが。

  1. その情報はどこに保存されていますか?djangoプロジェクトデータベースのdjceleryテーブルから呼び出されますか、それともRabbitMQサーバーに保持されますか?私のデータベースのdjceleryテーブルについての私の理解は、それらがカメラを使用して使用状況を監視するためだけのものであるということです。

  2. RabbitMQサーバーに保存されている場合、タスクステータスレポートはどのくらいの期間利用できますか?このデータはどのくらいのメモリを消費しますか?

  3. メモリリークを防ぐために、タスクステータスレポートを定期的にフラッシュする必要がありますか?これはどのように行われますか?rabbitmqサーバーを再起動しますか?

ありがとう。

4

1 に答える 1

3

結果はCELERY_RESULT_BACKENDに保存され、デフォルトでは無効になっています。

適切な新しいcelery.result.AsyncResulttask_idを作成することで、タスクの結果を取得できます。そこを指すIDがある場合、タスクの結果を取得するにはどうすればよいですか?

CELERY_AMQP_TASK_RESULT_EXPIRESを設定しない限り、タスクが期限切れになることはありません。AsyncResult.forget()を使用して、タスクの結果を手動で削除できます。

于 2011-08-08T22:45:36.670 に答える