18

を調べましPeriodicTaskたが、例はそれを繰り返すことだけをカバーしています。cron「毎週月曜日の午前 1 時にこのタスクを実行してください」と言う能力のようなものを探しています。

4

5 に答える 5

37

使用する

YourTask.apply_async(args=[some, args, here], eta=when)

そして、タスクの最後に、次に実行する必要があるときにスケジュールを変更します。

于 2010-01-02T04:24:01.583 に答える
32

最近リリースされたバージョン1.0.3は、Patrick Altmanのおかげで、これをサポートしています。

例:

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.")

詳細については、変更ログを参照してください。

http://celeryproject.org/docs/changelog.html

于 2010-01-22T08:54:04.853 に答える
6

期間ベースではなく時間ベースのスケジューリングを少し実現するために、ScheduledTask を追加するパッチを提出しました。

https://github.com/celery/celery/commit/e8835f1052bb45a73f9404005c666f2d2b9a9228

于 2010-05-13T20:54:49.117 に答える
0

このチュートリアルでどのように読むことができるか、あなたはPeriodicTaskを作ることができます、私はあなたが午前1時にタスクを実行したと思います。月曜日の朝は、長いcpu / mem操作を実行したいため、rememeberceleryはエンキュータスクにampqを使用します。

于 2010-01-02T04:41:43.567 に答える