sedano.pianificazioni¶
Le pianificazioni definiscono gli intervalli in cui devono essere eseguite le attività periodiche.
eccezionecelery.schedules.
ParseException
¶
Generato da crontab_parser quando l’input non può essere analizzato.
classcelery.schedules.
schedule
(run_every=None, relative=False, nowfun=None, app=None)¶
Schedule for periodic task.
- run_every – Intervallo in secondi (o un
timedelta
). - relativo – Se impostato su True il tempo di esecuzione verrà arrotondato alla risoluzione dell’intervallo.
- nowfun – Funzione che restituisce la data e l’ora correnti (classe: ~ datetime.datetime).
- app-Sedano app istanza.
app
human_seconds
is_due
(last_run_at)¶
Restituisce una tupla di due elementi (is_due, next_time_to_check),dove la prossima volta controllare in pochi secondi.
ad esempio
- (True, 20), significa che l’attività deve essere eseguita ora e la prossima volta che il controllo è in 20 secondi.
- (Falso, 12.3), significa che l’attività non è dovuta, ma che lo schedulershould controlla di nuovo in 12,3 secondi.
La prossima volta che il controllo viene utilizzato per risparmiare energia / cicli di cpu, non ha bisogno di essere preciso, ma influenzerà la precisionof il vostro programma. È inoltre necessario tenere a mente il valore di CELERYBEAT_MAX_LOOP_INTERVAL
, che decide il numero massimo di secondi in cui lo scheduler può dormire tra il ricontrollare gli intervalli di attività periodici. Quindi, se hai un’attività che cambia la pianificazione in fase di runtime, il tuo next_run_atcheck deciderà quanto tempo ci vorrà prima che una modifica a theschedule abbia effetto. L’intervallo di ciclo massimo prende precendenceover il controllo successivo al valore restituito.
Scheduler intervallo massimo varianza
L’intervallo di ciclo massimo predefinito può variare per i diversi scheduler.Per lo scheduler predefinito il valore è di 5 minuti, ma per esempio lo scheduler del database django-celery il valore è di 5 secondi.
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.
Come un lavoro cron, è possibile specificare unità di tempo di quando si desidera eseguire l’attività. È un’implementazione ragionevolmente completa delle funzionalità di cron, quindi dovrebbe fornire un equo grado di esigenze di pianificazione.
È possibile specificare un minuto, un’ora, un giorno della settimana, un giorno di themonth, e/o di un mese nell’anno in uno dei seguenti formati:
minute
¶
- Un (lista dei) numeri interi da 0 a 59 che rappresentano i minuti di una serie ora di quando l’esecuzione debba avvenire; o
- Una stringa che rappresenta un crontab modello. Questo può ottenere prettyadvanced, come minute = ‘ * / 15 ‘(per ogni trimestre) orminute=’1,13,30-45,50-59/2″‘
hour
¶
- Un (elenco di) numeri interi da 0 a 23 che rappresentano le ore di un giorno in cui dovrebbe verificarsi l’esecuzione; o
- Una stringa che rappresenta un modello crontab. Questo può ottenere prettyadvanced, come ora= ‘ * / 3 ‘(per ogni tre ore) orhour = ‘ 0,8-17/2 ‘(a mezzanotte, e ogni due ore duringoffice ore).
day_of_week
¶
- Un (elenco di) numeri interi da 0 a 6, dove domenica = 0 e sabato =6, che rappresentano i giorni di una settimana in cui l’esecuzione dovrebbe verificarsi.
- Una stringa che rappresenta un modello crontab. Questo potrebbe essere prettyadvanced, come day_of_week= ‘lun-ven’ (solo per i giorni feriali).(Attenzione che day_of_week = ‘* / 2 ‘non significa letteralmente’ ogni due giorni’, ma’ogni giorno che è divisibile per due’!)
day_of_month
¶
- Un (elenco di) numeri interi da 1 a 31 che rappresenta i giorni del mese in cui dovrebbe verificarsi l’esecuzione.
- Una stringa che rappresenta un modello crontab. Questo può ottenere prettyadvanced, come day_of_month = ‘2-30 / 3′(per ogni giorno evennumbered) o day_of_month=’ 1-7,15-21′ (per la prima e la terza settimana del mese).
month_of_year
¶
- Un (elenco di) numeri interi da 1 a 12 che rappresenta i mesi dell’anno durante i quali può verificarsi l’esecuzione.
- Una stringa che rappresenta un modello crontab. Questo può ottenere prettyadvanced, come month_of_year=’*/3′ (per il primo mese di ogni trimestre) o month_of_year=’2-12/2′ (per ogni mese evennumbered).
nowfun
¶
Funzione che restituisce la data e l’ora correnti (datetime
).
app
¶
L’istanza dell’app Celery.
È importante rendersi conto che ogni giorno in cui l’esecuzione shouldoccur deve essere rappresentato da voci in tutti e tre gli attributi di giorno e mese. Ad esempio, se day_of_week è 0 e day_of_monthis ogni settimo giorno, solo i mesi che iniziano la domenica e sono anche nell’attributo month_of_year avranno eventi di esecuzione. Oppure, day_of_week è 1 e day_of_month è ‘ 1-7,15-21’ significa ogni primo e terzo lunedì di ogni mese presente in month_of_year.
is_due
(last_run_at)¶
Restituisce una tupla di due elementi (is_due, next_time_to_run),dove la prossima volta da eseguire è in secondi.
Vederecelery.schedules.schedule.is_due()
per ulteriori informazioni.
now
remaining_delta
(last_run_at, tz=None, ffwd=< classe ‘sedano.utils.timeutils.ffwd’ >remaining_estimate
(last_run_at, ffwd=<classe ‘sedano.utils.timeutils.ffwd’>)¶
Restituisce quando l’attività periodica deve essere eseguita come timedelta.
classecelery.schedules.
crontab_parser
(max_=60, min_=0)¶
Parser per espressioni crontab. Qualsiasi espressione della forma ‘gruppi ‘ (vedi grammatica BNF sotto) è accettata ed estesa a un insieme di numeri.Questi numeri rappresentano le unità di tempo su cui il crontab deve girare:
digit :: '0'..'9'dow :: 'a'..'z'number :: digit+ | dow+steps :: numberrange :: number ( '-' number ) ?numspec :: '*' | rangeexpr :: numspec ( '/' steps ) ?groups :: expr ( ',' expr ) *
Il parser è uno scopo generale, utile per l’analisi di espressioni di ore, minuti e day_of_week. Esempio di utilizzo:
>>> minutes = crontab_parser(60).parse('*/15')>>> hours = crontab_parser(24).parse('*/4')>>> day_of_week = crontab_parser(7).parse('*')
Può anche analizzare le espressioni day_of_month e month_of_year se inizializzate con un minimo di 1. Esempio di utilizzo:
>>> 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')
Il massimo possibile ampliato il valore restituito è trovato con la formula:
max_ + min_ - 1
eccezione ParseException