私はしばらくの間Django/Celeryのドキュメントと戦ってきましたが、助けが必要です。
Django-celeryを使用して定期的なタスクを実行できるようにしたいと思います。私はインターネット(およびドキュメント)の周りで、Celeryを使用してこれを達成する方法についていくつかの異なるフォーマットとスキーマを見てきました...
Django-celeryの定期的なタスクの作成、登録、実行の基本的で機能的な例を誰かが手伝ってくれるでしょうか?特に、PeriodicTaskクラスを拡張するタスクを作成して登録する必要があるのか、@ periodic_taskデコレータを使用する必要があるのか、@ taskデコレータを使用してからタスクのスケジュールを設定する必要があるのかを知りたいです。実行。
3つの方法すべてが可能かどうかは気になりませんが、少なくとも1つの方法が機能する例を見てみたいと思います。本当にあなたの助けに感謝します。
ドキュメントの例 の何が問題になっていますか?
from celery.task import PeriodicTask
from clickmuncher.messaging import process_clicks
from datetime import timedelta
class ProcessClicksTask(PeriodicTask):
run_every = timedelta(minutes=30)
def run(self, **kwargs):
process_clicks()
デコレータを使用して同じタスクを作成できます。
from celery.task.schedules import crontab
from celery.task import periodic_task
@periodic_task(run_every=crontab(minute="*/30"))
def process_clicks():
....
デコレータ構文 を使用すると、既存の関数/タスクを直接変更せずに定期的なタスクに変換できます。
実行するタスクの場合 celerybeatが実行されている必要があります 。