Celery複数タスクをスケジュールする方法
- メディア:
- この商品を含むブログを見る
コメント
Django+Celeryで非同期処理でスケジューラー登録しているタスクは現在ひとつですが、この度複数にする必要があり、複数タスクをスケジュールに組み込む方法を探しました。
参考資料
公式ドキュメントに例そのままは見つけられなかったのですが、StackOverflowにはありました。これを試します
これで無事動きました!
#settings.py from datetime import timedelta CELERYBEAT_SCHEDULE = { 'add-every-300-seconds': { 'task': '<app名>.tasks.test_def', 'schedule': timedelta(seconds=300), 'args': (16, 16) }, 'add-every-60-seconds': { 'task': '<app名>.tasks.test_def_two', 'schedule': crontab(minute='*/1'), #1分毎に実行 'args': (16, 16) }, 'abc': { 'task': '<app名>.tasks.test_def_three', 'schedule': crontab(minute='10', hour='0', day_of_month='1'), #月初の0時10分に実行 'args': (16, 16) }, 'defgh': { 'task': '<app名>.tasks.test_def_three', 'schedule': crontab(minute='10', hour='0', day_of_month='1-30'), #毎月1〜30日までの期間は毎日0時10分に実行 'args': (16, 16) }, } CELERY_TIMEZONE = 'Asia/Tokyo'