1. ホーム
  2. python

[解決済み] シェルから手動でceleryの定期的なタスクを実行するには?

2023-05-15 16:32:28

質問

私は celery と django-celery を使っています。テストしたい定期的なタスクを定義しました。コンソール出力を見るために、シェルから定期的なタスクを手動で実行することは可能でしょうか?

どのように解決するのですか?

Django シェルからタスクを実行することだけを試しましたか?その場合 .apply メソッドを使って、タスクがイーガーリーかつローカルに実行されるようにすることができます。

仮にタスクが my_task というタスクが Django アプリで myapptasks サブモジュールの

$ python manage.py shell
>>> from myapp.tasks import my_task
>>> eager_result = my_task.apply()

結果のインスタンスは、通常の AsyncResult 型と同じAPIを持っています。ただし、結果は常にイーガーリーかつローカルに評価され、また .apply() メソッドはタスクが完了するまでブロックされます。