selleri.tidsplaner¶

selleri.tidsplaner¶

Tidsplaner definerer intervaller der periodiske oppgaver skal løpe.

unntakcelery.schedules.ParseException

Hevet av crontab_parser når inngangen ikke kan analyseres.

klassecelery.schedules.schedule(run_every=Ingen, relativ=Falsk, nowfun=Ingen, app=ingen)¶

Tidsplan for periodisk oppgave.

Parametere:

  • run_every-Intervall i sekunder (eller en timedelta).
  • relativ – hvis satt Til Sann vil kjøretiden avrundes til løsningen av intervallet.
  • nowfun-Funksjonen returnerer gjeldende dato og klokkeslett (klasse:~datetime.datetime).
  • app-Selleri app forekomst.

apphuman_secondsis_due(last_run_at)¶

Returnerer tuppel av to elementer (is_due, next_time_to_check),hvor neste gang å sjekke er i sekunder.

  • (True, 20), betyr at oppgaven skal kjøres nå, og neste gang å sjekke er i 20 sekunder.
  • (Falsk, 12.3), betyr at oppgaven ikke skyldes, men at planleggeren skal sjekke igjen om 12,3 sekunder.

neste gang å sjekke brukes til å spare energi / cpu-sykluser, trenger det ikke å være nøyaktig, men vil påvirke presisjonen av timeplanen din. Du må også huske påverdien av CELERYBEAT_MAX_LOOP_INTERVAL, som bestemmer maksimalt antall sekunder planleggeren kansove mellom å sjekke de periodiske oppgaveintervallene. Så hvis du har en oppgave som endrer tidsplanen under kjøring, bestemmer din next_run_atcheck hvor lang tid det tar før en endring i theschedule trer i kraft. Max loop intervall tar precendenceover neste sjekk på verdi returnert.

Planlegger maks. intervallvarians

standard maks. sløyfeintervall kan variere for ulike planleggere.For standard scheduler verdien er 5 minutter, men for f.eks django-selleri database scheduler verdien er 5 sekunder.

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.

Som en cron-jobb kan du angi tidsenheter for nårdu vil at oppgaven skal utføres. Det er en rimelig completeimplementation av cron funksjoner, så det bør gi en fairdegree av planlegging behov.

Du kan angi et minutt, en time, en ukedag, en ukedag og/eller en måned i året i et av følgende formater:

minute

  • A (liste over) heltall fra 0-59 som representerer minuttene av en time for når utførelse skal skje; eller
  • en streng som representerer et crontab mønster. Dette kan bli prettyadvanced, som minutt= ‘ * / 15 ‘(for hvert kvartal) orminute=’1,13,30-45,50-59/2’.

hour

  • A (liste over) heltall fra 0-23 som representerer timene til en dag for når utførelse skal skje; eller
  • en streng som representerer et crontab mønster. Dette kan bli prettyadvanced, som hour= ‘* / 3 ‘(for hver tredje time) orhour= ‘0,8-17/2’ (ved midnatt, og hver annen time underoffice timer).

day_of_week

  • A (liste over) heltall fra 0-6, hvor søndag = 0 og lørdag =6, som representerer dagene i uken som utførelsen skal skje.
  • en streng som representerer et crontab mønster. Dette kan bli prettyadvanced, som day_of_week= ‘ man-fre ‘(kun for hverdager).(Pass på at day_of_week= ‘* / 2 ‘betyr ikke bokstavelig talt ‘annenhver dag’, men ‘hver dag som er delelig med to’!)

day_of_month

  • A (liste over) heltall fra 1-31 som representerer dagene til den måneden at utførelsen skal skje.
  • en streng som representerer et crontab mønster. Dette kan bli prettyadvanced, for eksempel day_of_month= ‘2-30 / 3’ (for hver evennumbered dag) eller day_of_month= ‘ 1-7, 15-21 ‘(for de første og tredje ukene i måneden).

month_of_year

  • A (liste over) heltall fra 1-12 som representerer månedene i året hvor utførelse kan forekomme.
  • en streng som representerer et crontab mønster. Dette kan bli prettyadvanced, for eksempel month_of_year= ‘ * / 3 ‘(for den første måneden av hvert kvartal) eller month_of_year= ‘ 2-12 / 2 ‘(for hver evennumbered måned).

nowfun

funksjon som returnerer gjeldende dato og klokkeslett (datetime).

app

Forekomsten Av Selleri-appen.

det er viktig å innse at en hvilken som helst dag som utførelsen skaloppstå må representeres av oppføringer i alle tre av dagen ogmåned attributter. Hvis for eksempel day_of_week er 0 og day_of_monthis hver syvende dag, vil bare måneder som begynner på søndag og også er i attributtet month_of_year, ha utførelseshendelser. Eller, day_of_week er 1 og day_of_month er ‘1-7, 15-21’ betyr everyfirst og tredje mandag i hver måned til stede i month_of_year.

is_due(last_run_at)¶

Returnerer tuppel av to elementer (is_due, next_time_to_run),hvor neste gang å kjøre er i sekunder.

Se celery.schedules.schedule.is_due() for mer informasjon.

nowremaining_delta(last_run_at, tz=Ingen, Ffwd=< klasse ‘selleri.utils.timeutils.ffwd ‘ >remaining_estimate(last_run_at, ffwd=<klasse ‘selleri.utils.timeutils.ffwd ‘ >)¶

Returnerer når den periodiske oppgaven skal kjøre neste som en timedelta.

klassecelery.schedules.crontab_parser(maks_ = 60, min_ = 0)¶

Parser for crontab-uttrykk . Ethvert uttrykk av skjemaet ‘grupper’ (se bnf grammatikk nedenfor) er akseptert og utvidet til et sett med tall.Disse tallene representerer tidsenhetene som crontab trenger torun på:

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

parseren er et generelt formål en, nyttig for parsing timer, minutter andday_of_week uttrykk. Eksempelbruk:

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

det kan også analysere day_of_month og month_of_year uttrykk hvis initialisert med minimum 1. Eksempelbruk:

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

den maksimale mulige utvidede verdien som returneres, er funnet med formelen:

max_ + min_ - 1

unntakParseException

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.