概要
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 件のコメント:
コメントを投稿