selleri.aikataulut¶

selleri.aikataulut¶

aikataulut määrittelevät aikavälit, joilla määräaikaisia tehtäviä tulisi suorittaa.

poikkeuscelery.schedules.ParseException

nostettu crontab_parserilla, kun syöttöä ei voi jäsentää.

Luokkacelery.schedules.schedule(run_every=None, relative=False, nowfun=None, app=None)¶

jaksollisen tehtävän aikataulu.

parametrit:

  • run_every – intervalli sekunneissa (tai a timedelta).
  • suhteellinen – jos True-arvoksi asetetaan ajonaika pyöristetään väliajan ratkaisuksi.
  • nowfun – funktio palauttaa nykyisen päivämäärän ja kellonajan(Luokka:~datetime.datetime).
  • app-Seller app instanssi.

apphuman_secondsis_due(last_run_at)¶

Palauttaa kahden kohteen tuplan (is_due, next_time_to_check),jossa seuraava tarkistuskerta on sekunneissa.

esim.

  • (totta, 20), tarkoittaa, että tehtävä pitäisi suorittaa nyt, ja seuraava tarkistusaika on 20 sekunnin kuluttua.
  • (väärä, 12.3), tarkoittaa, että tehtävä ei ole erääntynyt, mutta että ajastimen tulisi tarkistaa uudelleen 12,3 sekunnissa.

seuraavan kerran tarkistusta käytetään energian / suorittimen syklien säästämiseksi,sen ei tarvitse olla tarkka, mutta se vaikuttaa aikataulusi täsmällisyyteen. Sinun on myös pidettävä mielessä CELERYBEAT_MAX_LOOP_INTERVAL,joka päättää niiden sekuntien enimmäismäärän, jotka ajoittaja voi nukkua säännöllisten tehtävien uudelleen tarkistamisen välillä. Joten jos sinulla on tehtävä, joka muuttaa aikataulua suorituksen aikana, next_run_atcheck päättää, kuinka kauan kestää ennen kuin muutos aikatauluun tulee voimaan. Silmukan enimmäisväli kestää ennen seuraavaa tarkistusta palautetulla arvolla.

Scheduler Max intervallivarianssi

oletussilmukan Max intervalli voi vaihdella eri ajoituksissa.Oletusajastus on 5 minuuttia, mutta esimerkiksi django-selleri-tietokantajastus on 5 sekuntia.

maybe_make_aware(dt)¶nowrelative= False¶remaining_estimate(last_run_at)¶secondsto_local(dt)¶tzutc_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.

cron-työn tavoin voit määrittää aikayksiköt, milloin haluat tehtävän suoritettavan. Se on kohtuullisen complete implementation cron ominaisuuksia, joten sen pitäisi tarjota oikeudenmukainen aikataulu tarpeisiin.

voit määrittää minuutin, tunnin, viikonpäivän, viikonpäivän, viikonpäivän ja/tai kuukauden vuodessa missä tahansa seuraavista muodoista:

minute

  • (luettelo) kokonaisluvuista 0-59, jotka edustavat tunnin minuutteja siitä, milloin toteutuksen tulisi tapahtua; tai
  • jono, joka edustaa krontab-kaavaa. Tämä voi saada prettyadvanced, kuten minute= ”* / 15 ”(jokaiselle neljännekselle) orminute= ”1,13,30-45,50-59/2”.

hour

  • a (luettelo) kokonaisluvuista 0-23, jotka kuvaavat sen päivän tunteja, jolloin toteutuksen tulisi tapahtua; tai
  • jono, joka edustaa krontab-kuviota. Tämä saattaa edistyä melko hyvin, kuten hour = * / 3 (kolmen tunnin välein) tai Hour=0,8-17/2 (keskiyöllä ja kahden tunnin välein toimistotuntien aikana).

day_of_week

  • a (luettelo) kokonaisluvuista 0-6, missä sunnuntai = 0 ja Lauantai =6, jotka edustavat niitä viikonpäiviä, jotka toteutuksen tulisi tapahtua.
  • jono, joka esittää krontab-kuviota. Tämä voi olla nätisti ennakoitu, kuten day_of_week= ”ma-pe” (vain arkisin).(Varokaa, että day_of_week= ”* / 2 ”ei tarkoita kirjaimellisesti ” every two days”, vaan ”every day that is andquot; every day that is andquot; kahdella’!)

day_of_month

  • a (luettelo) kokonaisluvuista 1-31, joka kuvaa niitä päiviä, jolloin toimeenpano tulisi tapahtua.
  • jono, joka esittää krontab-kuviota. Tämä saattaa edistyä melko hyvin, kuten day_of_month= ”2-30 / 3” (jokaisena numeroituna päivänä) tai day_of_month= ”1-7,15-21” (kuukauden ensimmäisenä ja kolmantena viikkona).

month_of_year

  • (luettelo) kokonaisluvuista 1-12, joka kuvaa niitä vuoden kuukausia, joiden aikana toteutus voi tapahtua.
  • jono, joka esittää krontab-kuviota. Tämä voi edistyä melko hyvin, kuten month_of_year= ”*/3 ”(jokaisen vuosineljänneksen ensimmäisenä kuukautena) tai month_of_year= ”2-12/2” (jokaisena kymmenenä kuukautena).

nowfun

funktio palauttaa nykyisen päivämäärän ja kellonajan(datetime).

app

sellerin applikaatio.

on tärkeää ymmärtää, että mikä tahansa päivä, jona toteutuksen pitäisi tapahtua, tulee esittää kaikkien kolmen päivän ja kuukauden attribuutin merkinnöillä. Jos esimerkiksi day_of_week on 0 ja day_of_monthis joka seitsemäs päivä, vain kuukaudet, jotka alkavat sunnuntaina ja ovat myös month_of_year-attribuutissa, ovat toteutustapahtumia. Tai, day_of_week on 1 ja day_of_mont on ”1-7, 15-21” tarkoittaa joka ensimmäinen ja kolmas maanantai jokaisen läsnä kuukauden month_of_ear.

is_due(last_run_at)¶

Palauttaa kahden kohteen tuplan (is_due, next_time_to_run),jossa seuraava suoritusaika on sekunneissa.

katso lisätietoja celery.schedules.schedule.is_due().

nowremaining_delta(last_run_at, tz=None, ffwd=<Luokka ” selleri.utils.ajankäyttö.ffwd ”>remaining_estimate(last_run_at, ffwd=<Luokka ” selleri.utils.ajankäyttö.ffwd ”>)¶

Palaa, kun jaksollinen tehtävä suoritetaan seuraavaksi aikadeltana.

classcelery.schedules.crontab_parser(max_=60, min_=0)¶

jäsennin krontab-lausekkeille. Kaikki muodon ’ryhmät’lausekkeet(katso BNF-kielioppi alla) hyväksytään ja laajennetaan numerojoukoksi.Nämä numerot edustavat ajan yksiköitä, että crontab tarvitsee torun on:

digit :: '0'..'9'dow :: 'a'..'z'number :: digit+ | dow+steps :: numberrange :: number ( '-' number ) ?numspec :: '*' | rangeexpr :: numspec ( '/' steps ) ?groups :: expr ( ',' expr ) *

jäsennin on yleiskäyttöinen, käyttökelpoinen jäsennettäessä tunteja, minuutteja ja viikonvaihteen lausekkeita. Esimerkkikäyttö:

>>> minutes = crontab_parser(60).parse('*/15')>>> hours = crontab_parser(24).parse('*/4')>>> day_of_week = crontab_parser(7).parse('*')

se voi jäsentää myös day_of_month-ja month_of_year-lausekkeita, jos ne on alustettu vähintään 1. Esimerkkikäyttö:

>>> 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')

palautettu suurin mahdollinen laajennettu arvo löytyy kaavalla:

max_ + min_ - 1

poikkeusParseException

Vastaa

Sähköpostiosoitettasi ei julkaista.