celer.plány¶
plány definují intervaly, ve kterých by periodické úlohy měly běžet.
výjimkycelery.schedules.
ParseException
¶
Vznesené crontab_parser když vstup nemůže být analyzován.
třídacelery.schedules.
schedule
(run_every=None, relativní=False, nowfun=None, app=None)¶
Naplánovat pravidelné úlohy.
- run_every – Interval v sekundách (nebo
timedelta
). - relativní-pokud je nastavena na hodnotu True, bude doba běhu zaokrouhlena na hodnotu intervalu.
- nowfun-Funkce vrací aktuální datum a čas(Třída:~datetime.datum).
- app-celer app instance.
app
human_seconds
is_due
(last_run_at)¶
Vrátí tuple dvou položek (is_due, next_time_to_check),kde příště zkontrolujte, zda je v sekundách.
např.
- (True, 20), znamená, že úkol by měl být spuštěn nyní a příště ke kontrole je za 20 sekund.
- (False, 12.3), znamená, že úkol není splatný, ale že plánby měl znovu zkontrolovat za 12,3 sekundy.
při příštím kontrole se používá k úspoře cyklů energie / cpu, nemusí to být přesné, ale ovlivní přesnost vašeho plánu. Musíte také mít na paměti hodnotu CELERYBEAT_MAX_LOOP_INTERVAL
, která rozhoduje o maximálním počtu sekund, které plánovač můžespát mezi opětovnou kontrolou pravidelných intervalů úloh. Takže pokud máte úkol, který mění plán za běhu, pak váš next_run_atcheck rozhodne, jak dlouho to bude trvat, než se projeví změna na theschedule. Interval max smyčky trvá precendencover další kontrolu při vrácené hodnotě.
Scheduler max interval variance
výchozí interval max smyčky se může lišit pro různé plánovače.Pro výchozí plánovač je hodnota 5 minut, ale například pro plánovač databáze django-celery je hodnota 5 sekund.
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 aPeriodicTask
to add cron-like scheduling.
stejně jako úloha cron můžete určit jednotky času, kdy chcete úkol provést. Jedná se o přiměřeně kompletní implementaci funkcí cron, takže by měl poskytnout spravedlivý stupeň potřeb plánování.
můžete zadat minutu, hodinu, den v týdnu, den themonth, a/nebo měsíc v roce v každém z následujících formátů:
minute
¶
- (seznam) čísel z 0-59 let, které představují minuty, natočit hodinu po spuštění by mělo dojít; nebo
- řetězec představující crontab vzor. To může být docela pokročilé, jako minute= ‚ * / 15 ‚(za každé čtvrtletí) nebominute=’1,13,30-45,50-59/2″.
hour
¶
- (seznam) čísel z 0-23, které představují hodiny ofa den, kdy plnění mělo dojít; nebo
- řetězec představující crontab vzor. To může dostat prettyadvanced, jako hodina=’*/3′ (každé tři hodiny) orhour=’0,8-17/2′ (o půlnoci, a každé dvě hodiny duringoffice hodin).
day_of_week
¶
- (seznam) celá čísla od 0-6, kde v neděli = 0 a sobota =6, které představují dny v týdnu, že provedení shouldoccur.
- řetězec představující vzor crontab. To může dostat prettyadvanced, jako day_of_week= ‚Po-Pá‘ (pouze pro všední dny).(Pozor, že day_of_week= ‚* / 2 ‚neznamená doslova‘ každý dva dny‘, ale ‚každý den, který je dělitelný dvěma‘!)
day_of_month
¶
- a (seznam) celých čísel od 1-31, které představují dny měsíce, kdy by mělo dojít k provedení.
- řetězec představující vzor crontab. To může dostat prettyadvanced, jako day_of_month=’2-30/3′ (pro každý evennumbered den) nebo day_of_month=’1-7,15-21′ (pro první týdny a měsíce).
month_of_year
nowfun
Function
Funkce vrací aktuální datum a čas(datetime
).
app
¶
instance aplikace celeru.
je důležité si uvědomit, že každý den, kdy by provedení mělo nastat, musí být reprezentován záznamy ve všech třech atributech dne a měsíce. Například, pokud day_of_week je 0 a day_of_monthis každý sedmý den, pouze měsíce, které začínají nedělí a jsou v té month_of_year atribut bude mít provedení akce. Nebo, day_of_week je 1 a day_of_month je ‚1-7, 15-21‘ znamená everyfirst a třetí pondělí každého měsíce přítomného v month_of_year.
is_due
(last_run_at)¶
vrací n-tice dvou položek (is_due, next_time_to_run),kde příště spustit je v sekundách.
viz celery.schedules.schedule.is_due()
pro více informací.
now
remaining_delta
(last_run_at, tz=None, ffwd=<třídy ‚celer.utils.Nečas.ffwd‘>remaining_estimate
(last_run_at, ffwd=<třídy ‚celer.utils.Nečas.ffwd ‚>) Returns
se vrací, když by periodická úloha měla běžet jako timedelta.
classcelery.schedules.
crontab_parser
(max_ = 60, min_ = 0)¶
analyzátor pro výrazy crontab. Jakýkoli výraz formuláře „skupiny“ (viz gramatika BNF níže) je přijat a rozšířen na množinu čísel.Tato čísla představují jednotky času, na které crontab potřebuje:
digit :: '0'..'9'dow :: 'a'..'z'number :: digit+ | dow+steps :: numberrange :: number ( '-' number ) ?numspec :: '*' | rangeexpr :: numspec ( '/' steps ) ?groups :: expr ( ',' expr ) *
parser je univerzální, užitečné pro analýzu hodiny, minuty andday_of_week výrazy. Příklad použití:
>>> minutes = crontab_parser(60).parse('*/15')>>> hours = crontab_parser(24).parse('*/4')>>> day_of_week = crontab_parser(7).parse('*')
To může také analyzovat day_of_month a month_of_year výrazy, pokud initializedwith na minimálně 1. Příklad použití:
>>> 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')
maximální možné, rozšířil hodnota vrácena, je nalézt podle vzorce:
max_ + min_ - 1
výjimkyParseException