2017-02-11 6 views
0

settings.pyCELERYBEAT_SCHEDULE辞書にDjangoアプリの繰り返しタスクをスケジュールします。例:ビュー機能(Djangoアプリ)を介して定期的なタスクスケジュールを設定

CELERYBEAT_SCHEDULE = { 
    'tasks.rank_photos': { 
     'task': 'tasks.rank_photos', 
     'schedule': timedelta(seconds=5*60), 
    }, 
    'tasks.trim_whose_online': { 
     'task': 'tasks.trim_whose_online', 
     'schedule': timedelta(seconds=10*60), 
    }, 
} 

これらのタスクは定期的に実行されます(アプリの有効期間中)。

私のアプリの通常のユーザーが定期的な仕事を開始する方法があるのだろうかと思っていましたか?私。この種のスケジューリングをviews.pyから制御する方法はありますか?そうでない場合は、どうしてですか?そして、そうなら、実例を挙げてみるとよいでしょう。前もって感謝します。

+0

django-celery-beatパッケージ(https://pypi.python.org/pypi/django_celery_beat)を使用できます。いくつかのモデル(PeriodicTaskなど)が定義されており、これらのモデルを使用して定期的なタスクを作成または編集するだけで、ビュー内でタスクをスケジュールすることができます。公式文書(http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html)にも記載されています。 'Django-Celery-beat拡張機能があり、Djangoデータベースにスケジュールを保存しています。実行時に定期的なタスクを管理するための便利な管理インターフェースを提供します。 ' – mateuszb

+1

@mateuszb:アシスタンスに感謝します。ドキュメントをもう一度やり直す - これを逃した。あなたはそれを答えとして加えることができ、私はそれを受け入れます。 –

答えて

1

django-celery-beat packageを使用できます。いくつかのモデル(例:PeriodicTask)が定義されており、これらのモデルを使用して定期的なタスクを作成または編集するだけで、ビュー内のタスクをスケジュールすることができます。これはofficial docsに記載されています。

Djangoデータベースにスケジュールを保存するdjango-celery-beat拡張もあり、実行時に定期的なタスクを管理するための便利な管理インタフェースを提供します。

関連する問題