zeller.menetrendek
a menetrendek meghatározzák azokat az intervallumokat, amelyeken a periodikus feladatoknak futniuk kell.
kivételcelery.schedules.
ParseException
által felvetett crontab_parser amikor a bemenet nem elemezhető.
classcelery.schedules.
schedule
(run_every=None, relative=False, nowfun=None, app=None) 6
időszakos feladat ütemezése.
- run_every – intervallum másodpercben (vagy
timedelta
). - relative – ha True értékre van állítva, a futási idő az intervallum felbontására lesz kerekítve.
- nowfun – függvény visszaadja az aktuális dátumot és időt(osztály:~datetime.datetime).
- app-zeller alkalmazás példány.
app
xhamsterenhuman_seconds
xhamsterenis_due
(last_run_at) xhamsteren
két elemből álló (is_due, next_time_to_check) értéket ad vissza,ahol a következő ellenőrzés másodpercek alatt történik.
pl.
- (igaz, 20) azt jelenti, hogy a feladatot most kell futtatni, és a következő ellenőrzésre 20 másodperc múlva kerül sor.
- (hamis, 12.3), azt jelenti, hogy a feladat nem esedékes, hanem az ütemező12,3 másodpercen belül újra ellenőriznie kell.
a következő ellenőrzéskor energiát/cpu ciklusokat takarít meg,nem kell pontosnak lennie, de befolyásolja az ütemezés pontosságát. Azt is szem előtt kell tartaniaa CELERYBEAT_MAX_LOOP_INTERVAL
értéke,amely meghatározza, hogy az ütemező hány másodpercet tudaludni az időszakos feladatintervallumok újbóli ellenőrzése között. Tehát, ha van olyan feladata, amely futás közben megváltoztatja az ütemtervet, akkor a next_run_atcheck eldönti, hogy mennyi időbe telik, amíg a menetrend módosítása hatályba lép. A Max loop intervallum a következő ellenőrzésnél veszi elő a visszaadott értéket.
ütemező maximális intervallum variancia
Az alapértelmezett maximális ciklus intervallum változhat a különböző ütemezőknél.Az alapértelmezett ütemezőnél az érték 5 perc, de pl. a django-zeller adatbázis ütemezőnél az érték 5 másodperc.
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.
mint egy cron feladat, megadhatja az időegységeket, hogy mikor szeretné végrehajtani a feladatot. Ez a cron funkcióinak ésszerűen teljes végrehajtása, ezért az ütemezési igények tisztességes mértékét kell biztosítania.
megadhat egy percet, egy órát, a hét egy napját, a hónap egy napját és/vagy az év egy hónapját a következő formátumok bármelyikében:
minute
0-tól 59-ig terjedő egész számok listája, amelyek a végrehajtás órájának percét jelölik; vagy
hour
- a (0-23 közötti egész számok listája), amelyek a végrehajtás napjának óráit jelölik; vagy
- egy crontab mintát ábrázoló string. Ez eléggé előrehaladhat, például hour= ‘* / 3′(háromóránként) vagyhour=’ 0,8-17/2 ‘ (éjfélkor, és kétóránként az irodai órákban).
day_of_week
- a (lista) 0-6-os egész számok, ahol vasárnap = 0 és szombat =6, amelyek egy hét azon napjait jelentik, amikor a végrehajtásnak meg kell történnie.
- egy crontab mintát képviselő karakterlánc. Ez eléggé fejlett lehet, mint például a day_of_week=’h-p’ (csak hétköznapokon).(Vigyázz, hogy a day_of_week= ‘* / 2’ szó szerint nem azt jelenti, hogy ‘kétnaponta’, hanem ‘minden nap, ami osztható kettővel’!)
day_of_month
ons
- a (lista) egész számok 1-31, amely a napok themonth, hogy a végrehajtás meg kell történnie.
- egy crontab mintát képviselő karakterlánc. Ez eléggé előrehaladhat, például day_of_month= ‘2-30 / 3′(minden számozott napra) vagy day_of_month=’ 1-7,15-21 ‘ (a hónap első és harmadik hetére).
month_of_year
- a (lista) egész számok 1-12, amely az év hónapjait jelöli, amelyek során a végrehajtás megtörténhet.
- egy crontab mintát képviselő karakterlánc. Ez eléggé előrehaladhat, például month_of_year= ‘*/3′(minden negyedév első hónapjára) vagy month_of_year=’ 2-12/2 ‘ (minden számozott hónapra).
nowfun
ons
Az aktuális dátumot és időt visszaadó függvény(datetime
).
app
a zeller alkalmazás példánya.
fontos felismerni, hogy minden olyan nap, amelyen a végrehajtásnak meg kell történnie, a nap mindhárom bejegyzésével kell megjelennie éshónap attribútumok. Például, ha a day_of_week értéke 0, és a day_of_monthis minden hetedik napon, akkor csak a vasárnap kezdődő hónapokban, amelyek szintén a month_of_year attribútumban vannak, lesznek végrehajtási események. Vagy a day_of_week értéke 1, A day_of_month értéke pedig ‘1-7,15-21’ minden hónap első és harmadik hétfőjét jelenti.
is_due
(last_run_at) (last_run_at) (last_run_at) (last_due, next_time_to_run) két tételt ad vissza,ahol a következő Futtatás másodpercben történik.
további információkért lásd:celery.schedules.schedule.is_due()
.
now
()remaining_delta
(last_run_at, tz=None, ffwd=< osztály ‘zeller.utils.timeutils.FFWD ‘>) onsremaining_estimate
(last_run_at, ffwd=<osztály ‘ zeller.utils.timeutils.FFWD ‘ >) A (z)!
a periodikus feladat következő futtatásakor tér vissza timedelta-ként.
classcelery.schedules.
crontab_parser
(max_=60, min_=0)
elemző a crontab kifejezésekhez. A ‘csoportok’ forma bármely kifejezése (lásd alább a BNF nyelvtant) elfogadásra kerül, és számkészletre bővül.Ezek a számok azt az időegységet képviselik, amelyre a crontabnak szüksége van:
digit :: '0'..'9'dow :: 'a'..'z'number :: digit+ | dow+steps :: numberrange :: number ( '-' number ) ?numspec :: '*' | rangeexpr :: numspec ( '/' steps ) ?groups :: expr ( ',' expr ) *
az elemző egy általános célú, hasznos elemzésére óra, perc andday_of_week kifejezéseket. Példa használat:
>>> minutes = crontab_parser(60).parse('*/15')>>> hours = crontab_parser(24).parse('*/4')>>> day_of_week = crontab_parser(7).parse('*')
a day_of_month és month_of_year kifejezéseket is elemezheti, ha legalább 1-gyel inicializálják. Példa használat:
>>> 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')
a maximális lehetséges kiterjesztett értéket a következő képlet adja meg:
max_ + min_ - 1
kivételParseException