telina.orarele de utilizare a țelinei

.orare

orare definesc intervalele la care sarcinile periodice ar trebui să ruleze.

excepțiecelery.schedules.ParseException

ridicat de crontab_parser atunci când intrarea nu poate fi analizată.

classcelery.schedules.schedule(run_every=None, relativ=False, nowfun=None, app=None)

program pentru sarcina periodică.

parametri:

  • run_every – Interval în secunde (sau untimedelta).
  • relativ-dacă este setat la True timpul de execuție va fi rotunjit larezoluția intervalului.
  • nowfun – funcția returnarea data și ora curentă(clasa:~datetime.datetime).
  • app-telina app instanță.

appXVhuman_secondsXVis_due(last_run_at)

returnează tuplu de două elemente (is_due, next_time_to_check),în cazul în care data viitoare pentru a verifica este în câteva secunde.

de ex.

  • (True, 20), înseamnă că sarcina trebuie executată acum, iar data viitoare pentru a verifica este în 20 de secunde.
  • (fals, 12.3), înseamnă că sarcina nu este datorată, ci că planificatorular trebui să verifice din nou în 12,3 secunde.

data viitoare pentru a verifica este folosit pentru a economisi energie/cicluri cpu,nu are nevoie să fie exacte, dar va influența precisionof programul. De asemenea,trebuie să țineți contvaloarea CELERYBEAT_MAX_LOOP_INTERVAL, care decide numărul maxim de secunde pe care programatorul îl poatedormi între verificarea periodică a intervalelor de activitate. Deci, dacă aveți o sarcină care modifică programul în timpul rulării, atunci next_run_atcheck va decide cât timp va dura înainte ca o modificare a programului să intre în vigoare. Intervalul de buclă max ia precendențăpeste următoarea verificare la valoarea returnată.

Scheduler Max interval variance

intervalul implicit max loop poate varia pentru diferite programatoare.Pentru planificatorul implicit, valoarea este de 5 minute, dar, de exemplu, pentru planificatorul bazei de date django-telina, valoarea este de 5 secunde.

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.

ca o lucrare cron, puteți specifica unități de timp de cânddoriți să executați sarcina. Este o implementare destul de completă a caracteristicilor cron, deci ar trebui să ofere un grad echitabil de planificare a nevoilor.

puteți specifica un minut, o oră, o zi a săptămânii, o zi a lunii și/sau o lună a anului în oricare dintre următoarele formate:

minute

  • o (listă de) numere întregi de la 0-59 care reprezintă minutele unei ore în care ar trebui să aibă loc execuția; sau
  • un șir reprezentând un model crontab. Acest lucru poate fi destul de avansat, cum ar fi minute=’* / 15 ‘(pentru fiecare trimestru) orminute=’1,13,30-45,50-59/2’.

hour

  • a (lista) numerelor întregi de la 0-23 care reprezintă orele unei zile în care ar trebui să aibă loc execuția; sau
  • un șir reprezentând un model crontab. Acest lucru poate fi destul de avansat, cum ar fi hour=’*/3′(pentru fiecare trei ore) sauhour = ‘0,8-17/2’ (la miezul nopții și la fiecare două ore în timpul orelor de birou).

day_of_week

  • a (lista) numerelor întregi de la 0-6, unde duminică = 0 și sâmbătă =6, care reprezintă zilele unei săptămâni în care ar trebui să aibă loc execuția.
  • un șir care reprezintă un model crontab. Acest lucru poate fi destul de avansat, cum ar fi day_of_week=’Luni-Vineri’ (numai pentru zilele lucrătoare).(Feriți-vă că day_of_week=’* / 2′ nu înseamnă literalmente ‘la fiecare două zile’, ci ‘fiecare zi care este divizibilă cu două’!)

day_of_month

  • o (listă de) numere întregi de la 1-31 care reprezintă zilele lunii în care ar trebui să aibă loc execuția.
  • un șir care reprezintă un model crontab. Acest lucru poate fi destul de avansat,cum ar fi day_of_month=’2-30/3′ (pentru fiecare zi evennumbered) sau day_of_month=’1-7, 15-21′ (pentru prima și a treia săptămână a lunii).

month_of_year

  • a (lista) numerelor întregi de la 1 la 12 care reprezintă lunile anului în care poate avea loc execuția.
  • un șir care reprezintă un model crontab. Acest lucru poate fi destul de avansat, cum ar fi month_of_year=’*/3′ (pentru prima lună din fiecare trimestru) sau month_of_year=’2-12/2′ (pentru fiecare lună uniformă).

nowfun

funcția de returnare a datei și orei curente (datetime).

app

instanța aplicației telina.

este important să ne dăm seama că orice zi în care ar trebui să apară execuția trebuie să fie reprezentată de intrări în toate cele trei atribute ale zilei și lunii. De exemplu, dacă day_of_week este 0 și day_of_monthis în fiecare a șaptea zi, numai lunile care încep duminică și sunt, de asemenea, în atributul month_of_year vor avea evenimente de execuție. Sau, day_of_week este 1 și day_of_month este ‘1-7, 15-21’ înseamnă everyfirst și a treia zi de luni a fiecărei luni prezente în month_of_year.

is_due(last_run_at)

returnează tuplu de două elemente (is_due, next_time_to_run),în cazul în care data viitoare pentru a rula este în câteva secunde.

vezicelery.schedules.schedule.is_due() pentru mai multe informații.

nowremaining_delta(last_run_at, tz=None, ffwd=<clasa ‘telina.utils.timeutils.FFWD ‘>remaining_estimate(last_run_at, ffwd=<clasa ‘ telina.utils.timeutils.FFWD ‘ >)

se întoarce când sarcina periodică ar trebui să ruleze în continuare ca timedelta.

clasacelery.schedules.crontab_parser(max_=60, min_=0) parser pentru expresii crontab. Orice expresie a formei ‘grupuri’ (vezi gramatica BNF de mai jos) este acceptată și extinsă la un set de numere.Aceste numere reprezintă unitățile de timp pe care crontab are nevoie să le ruleze:

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

parserul este unul de uz general, util pentru parsarea ore, minute andday_of_week expresii. Exemplu de utilizare:

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

se poate analiza, de asemenea, expresii day_of_month și month_of_year dacă inițializedwith un minim de 1. Exemplu de utilizare:

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

valoarea maximă posibilă extinsă returnată se găsește prin formula:

max_ + min_ - 1

excepțieParseException

Lasă un răspuns

Adresa ta de email nu va fi publicată.