2017-06-09 6 views
0

私はDjangoで灌漑システムをプログラミングしています。私はCeleryを使って非同期タスクを処理しています。djangoフロントエンドからタスクをスケジュールする方法はありますか?

私のアプリケーションでは、ユーザは灌漑を有効にしたい曜日と時間を選択します。これはデータベースに保存され、いつでも更新できます。

私はこのようなタスクをスケジュールすることができますが、私は時間を更新したいと思います。

from celery.task.schedules import crontab 
from celery.decorators import periodic_task 

@periodic_task(run_every=crontab(hour=7, minute=30, day_of_week="mon")) 
def every_monday_morning(): 
    print("This runs every Monday morning at 7:30a.m.") 

もう一つの方法は、私が実行したいと使用可能な場合は、ジャンゴから選択されるものをリストアップランタイムテーブルを持つことで

+0

特定の日付(秒)でセロリジョブを作成できます。あなたが必要とするのは、countdownパラメータを指定してapply_asyncを呼び出すことだけです。 http://docs.celeryproject.org/en/latest/userguide/calling.html#eta-and-countdown –

+0

Python APSchedulerがうまく動作します。 – cardamom

答えて

0

が同様の何かをしたのpython-のcrontabに使用することです。

定期的なタスクそのものが30秒ごとに実行されるようにスケジュールされ、このテーブルで要求されたものが実行可能で、ワーカーの1人が呼び出されているかどうかがチェックされます。

+1

ようこそStackOverflowへ。この回答をより高品質にするためにここにコードサンプルを提供できますか? – Graham

関連する問題