セロリ。schedules¶
Schedulesは、定期的なタスクが実行される間隔を定義します。入力を解析できないときにcrontab_parserによって発生したcrexception
例外celery.schedules.
ParseException
cr
クラスcelery.schedules.
schedule
(run_every=None,relative=False,nowfun=None,app=None)periodic
定期的なタスクのスケジュール。パラメータ:
- run_every–Interval(またはa
timedelta
)。 - relative–Trueに設定されている場合、実行時間は間隔の解に丸められます。
- nowfun–現在の日付と時刻を返す関数(class:~datetime.———
- app–Celeryアプリインスタンス。
app
human_seconds
is_due
(last_run_at).
二つの項目のタプルを返します(is_due,next_time_to_check),チェックする次回は秒単位です.たとえば、
- (True,20)は、タスクを今すぐ実行する必要があり、次回チェックする時間は20秒です。
- (False,12.3)、タスクが原因ではないことを意味しますが、schedulershouldは12.3秒で再びチェックします。次回のチェックは、エネルギー/cpuサイクルを節約するために使用されますが、正確である必要はありませんが、スケジュールのprecisionofに影響します。 また、
CELERYBEAT_MAX_LOOP_INTERVAL
の値は、スケジューラが定期的なタスク間隔を再チェックする間にスリープできる最大秒数を決定することに注意する必要があります。 したがって、実行時にスケジュールを変更するタスクがある場合、next_run_atcheckは、スケジュールの変更が有効になるまでにかかる時間を決定します。 最大ループ間隔は、返された値で次のチェックの前に先行します。Scheduler max interval variance
デフォルトの最大ループ間隔は、スケジューラによって異なる場合があります。デフォルトのスケジューラの場合、値は5分ですが、django-celeryデータベーススケジューラの場合、値は5秒です。
maybe_make_aware
(dt)¶now
relative
= False¶remaining_estimate
(last_run_at)¶seconds
to_local
(dt)¶tz
utc_enabled
¶ classcelery.schedules.
crontab
(minute=’*’, hour=’*’, day_of_week=’*’, day_of_month=’*’, month_of_year=’*’, nowfun=None, app=None)¶A crontab can be used as the run_every value of a
PeriodicTask
to add cron-like scheduling.cronジョブと同様に、タスクを実行したいときの時間単位を指定できます。 これは、cronの機能の合理的に完全な実装であるため、スケジューリングのニーズの公平な程度を提供する必要があります。分、時間、曜日、月、年の月を次のいずれかの形式で指定できます。
minute
execution- 実行が行われる時間の分を表す0-59の整数のリスト、または
- crontabパターンを表す文字列。 これは、minute=’*/15’(四半期ごと)やminute=’のように、かなり高度になる可能性があります1,13,30-45,50-59/2′.
hour
execution- 実行が行われる日の時間を表す0-23の整数のリスト、または
- crontabパターンを表す文字列。 これは、hour=’*/3’(3時間ごと)またはhour=’0,8-17/2’(深夜、およびオフィス時間中は2時間ごと)のように、かなり高度になる可能性があります。
day_of_week
Sunday- 実行が発生する週の日を表す0-6の整数(リスト)。
- crontabパターンを表す文字列。 これは、day_of_week=’mon-fri’(平日のみ)のように、prettyadvancedされる可能性があります。(Day_of_week=’*/2’は文字通り”すべての二日”を意味するのではなく、”二つで割り切れる毎日”を意味することに注意してください!)
day_of_month
execution- 実行が発生する必要がある月の日を表す1-31の整数のリスト。
- crontabパターンを表す文字列。 これは、day_of_month=’2-30/3’(偶数日ごと)またはday_of_month=’1-7,15-21’(月の最初の3週間)のように、かなり高度になる可能性があります。
month_of_year
execution- 実行が発生する可能性のある年の月を表す1-12の整数のリスト。
- crontabパターンを表す文字列。 これは、month_of_year=’*/3’(四半期ごとの最初のmonthofの場合)またはmonth_of_year=’2-12/2’(偶数月ごとの場合)のように、prettyadvancedを取得することができます。
nowfun
current現在の日付と時刻を返す関数(
datetime
)。app
¶Celeryアプリインスタンス。
実行すべき日は、dayおよびmonth属性の三つすべてのエントリで表されなければならないことを認識することが重要です。 たとえば、day_of_weekが0で、7日ごとにday_of_monthisの場合、日曜日に開始され、month_of_year属性にも含まれる月のみが実行イベントを持ちます。 または、day_of_weekは1で、day_of_monthは’1-7,15-21’はmonth_of_yearに存在する毎月の第一および第三月曜日を意味します。
is_due
(last_run_at)¶は、次の実行時間が秒単位である二つの項目(is_due,next_time_to_run)のタプルを返します。詳細については、
celery.schedules.schedule.is_due()
を参照してください。now
remaining_delta
(last_run_at,tz=None,ffwd=<クラス’セロリ。ユーティルスタイム-オブ-ザ-イヤー。ffwd’>)classremaining_estimate
(last_run_at,ffwd=<クラス’セロリ。ユーティルスタイム-オブ-ザ-イヤー。ffwd’>)periodic定期的なタスクがtimedeltaとして次に実行されるときを返します。クラス
celery.schedules.
crontab_parser
(max_=60,min_=0)crcrontab式のパーサ。 ‘Groups’形式の任意の式(下記のBNF文法を参照)は受け入れられ、一連の数値に展開されます。これらの数値は、crontabがtorunを必要とする時間の単位を表します:パーサーは、時間、分、day_of_week式を解析するのに便利な汎用のパーサーです。 使用例:
>>> minutes = crontab_parser(60).parse('*/15')>>> hours = crontab_parser(24).parse('*/4')>>> day_of_week = crontab_parser(7).parse('*')
初期化された場合、day_of_monthおよびmonth_of_year式を解析することもできます1の最小値。 使用例:
>>> days_of_month = crontab_parser(31, 1).parse('*/3')>>> months_of_year = crontab_parser(12, 1).parse('*/2')>>> months_of_year = crontab_parser(12, 1).parse('2-12/2')
返される可能性のある最大展開値は、次の式で検出されます。
max_ + min_ - 1
exception
ParseException