14

syncdb を実行すると、多くのテーブルが次のように作成されていることに気付きました。

  • djcelery_crontabスケジュール
  • ...
  • djcelery_taskstate

django-kombu がトランスポートを提供しているため、実際のキューに関連付けることはできません。タスクを実行しても、これらのテーブルには何も入力されていません。これらのテーブルは何に使用されますか? 監視目的のみ -- 有効にすると?

もしそうなら、AsyncResult() のルックアップを行うと、実際には djcelery の代わりに django-kombu テーブルを介してタスク結果をルックアップしていると思いますか?

ありがとう。

4

1 に答える 1

13

デーモン celerycam によって入力される celery task_state テーブルは、監視目的のためだけのものです。

「crontabschedule」「intervals」などの他のテーブルは、django バックエンド データベースを使用して定期的なタスクをスケジュールするためのものです。これらのテーブルは、セロリをビート モード (-B) で起動するとき、および設定でこの変数を設定しているときに使用されます。

CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"

このようにして、スケジュール タスクに django db を使用するようセロリに指示します。

于 2011-05-22T08:42:40.127 に答える