2022年1月21日金曜日

Celery でタスクが登録されないときに確認すること

Celery でタスクが登録されないときに確認すること

概要

celery を実行した際にタスクが登録されない場合にチェックする点を紹介します

環境

  • macOS 11.6.2
  • Python 3.10.1
  • celery 5.2.3

タスクがちゃんとどこかで import されているか

celery -A app.tasks.celery などで実行した場合に app.tasks や app.tasks が自動で読み込むモジュール (例えば app/__init__.py など) でちゃんとタスクとして定義したモジュールが import されている確認しましょう

実行したタスクモジュールを読み込んだ際にそのタスクどこかで import されいないと celery はタスクとして登録してくれません

もしくは app.tasks 内で定義した celery オブジェクトを使って @celery.task() アノテーションでタスク登録しても OK です

クラスの場合は register_task をする

クラスとしてタスクを定義した場合は Celery.register_task() で必ずクラスを登録しましょう

もしファイルを分ける場合はタスクはクラスとして定義したほうが管理の面ではいいと思います

0 件のコメント:

コメントを投稿