apio.programaciones¶
Las programaciones definen los intervalos a los que deben ejecutarse las tareas periódicas.
exceptioncelery.schedules.
ParseException
¶
Planteadas por crontab_parser cuando la entrada no puede ser analizada.
classcelery.schedules.
schedule
(run_every=None, relative=False, nowfun=None, app=None)¶
Programación de tareas periódicas.
- run_every – Intervalo en segundos (o un
timedelta
). - relative-Si se establece en True, el tiempo de ejecución se redondeará a la resolución del intervalo.
- nowfun-Función que devuelve la fecha y hora actuales (clase:~datetime.datetime).
- app-Instancia de aplicación de apio.
app
human_seconds
is_due
(last_run_at)¶
Devuelve la tupla de dos elementos (is_due, next_time_to_check),donde la próxima vez que se compruebe es en segundos.
, por ejemplo,
- (True, 20), significa que la tarea debe ejecutarse ahora y que la próxima vez que se verifique es en 20 segundos.
- (False, 12.3), significa que la tarea no se debe realizar, pero que el programador debe volver a verificarla en 12,3 segundos.
La próxima vez que se realice la comprobación se utiliza para ahorrar energía / ciclos de cpu, no es necesario que sea precisa, pero influirá en la precisión de su programación. También debe tener en cuenta el valor de CELERYBEAT_MAX_LOOP_INTERVAL
, que decide el número máximo de segundos que el programador puede permanecer entre la revisión de los intervalos periódicos de tareas. Por lo tanto, si tiene una tarea que cambia la programación en tiempo de ejecución, su next_run_atcheck decidirá cuánto tiempo tomará antes de que un cambio en el programa surta efecto. El intervalo de bucle máximo toma precedencia sobre la siguiente comprobación en el valor devuelto.
Varianza del intervalo máximo del programador
El intervalo de bucle máximo predeterminado puede variar para diferentes programadores.Para el programador predeterminado, el valor es de 5 minutos, pero para, por ejemplo, el programador de base de datos django-celery, el valor es de 5 segundos.
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.
Al igual que un trabajo cron, puede especificar las unidades de tiempo en las que desea ejecutar la tarea. Es una implementación razonablemente completa de las características de cron, por lo que debe proporcionar un grado justo de necesidades de programación.
Puede especificar un minuto, una hora, un día de la semana, un día del mes y/o un mes del año en cualquiera de los siguientes formatos:
minute
¶
- Una (lista de) enteros de 0 a 59 que representan los minutos de una hora en la que debe producirse la ejecución; o
- Una cadena que representa un patrón de crontab. Esto puede ser bastante avanzado, como minute = ‘ * / 15 ‘(por cada trimestre) o minute=’1,13,30-45,50-59/2″.
hour
¶
- Una (lista de) enteros de 0 a 23 que representan las horas de un día en el que debe ocurrir la ejecución; o
- Una cadena que representa un patrón de crontab. Esto puede ser bastante avanzado, como hour=’*/3′ (cada tres horas) o hour=’0,8-17/2′ (a medianoche, y cada dos horas durante las horas de oficina).
day_of_week
¶
- A (lista de) enteros de 0 a 6, donde Sunday = 0 y Saturday =6, que representan los días de la semana en que debería producirse la ejecución.
- Una cadena que representa un patrón de crontab. Esto puede ser bastante avanzado, como day_of_week= ‘lun-vie’ (solo para días laborables).(Tenga en cuenta que day_of_week = ‘*/2’ no significa literalmente «cada dos días», sino «cada día que es divisible por dos»!)
day_of_month
¶
- Una (lista de) enteros del 1 al 31 que representa los días del mes en que debería producirse la ejecución.
- Una cadena que representa un patrón de crontab. Esto puede ser bastante avanzado, como day_of_month= ‘2-30 / 3′(para cada día numerado) o day_of_month=’ 1-7,15-21 ‘ (para la primera y tercera semana del mes).
month_of_year
¶
- Una (lista de) enteros del 1 al 12 que representa los meses del año durante los cuales puede producirse la ejecución.
- Una cadena que representa un patrón de crontab. Esto puede llegar prettyadvanced, tales como month_of_year=’*/3′ (para el primer mes de cada trimestre) o month_of_year=’2-12/2′ (para todos los pares mes).
nowfun
¶
Función que devuelve la fecha y hora actuales(datetime
).
app
¶
La instancia de la aplicación Apio.
Es importante darse cuenta de que cualquier día en el que deba producirse la ejecución debe estar representado por entradas en los tres atributos day and month. Por ejemplo, si day_of_week es 0 y day_of_monthis cada séptimo día, solo los meses que comienzan el domingo y también están en el atributo month_of_year tendrán eventos de ejecución. O bien, day_of_week es 1 y day_of_month es ‘1-7, 15-21’ significa cada primer y tercer lunes de cada mes presente en month_of_year.
is_due
(last_run_at)¶
Devuelve la tupla de dos elementos (is_due, next_time_to_run),donde la próxima vez que se ejecute es en segundos.
Consulte celery.schedules.schedule.is_due()
para obtener más información.
now
remaining_delta
(last_run_at, tz=Ninguno, avance rápido=<class ‘de apio.utils.timeutils.avance rápido’>remaining_estimate
(last_run_at, avance rápido=<class ‘de apio.utils.timeutils.ffwd ‘>)¶
Devuelve cuando la tarea periódica debe ejecutarse a continuación como timedelta.
classcelery.schedules.
crontab_parser
(max_=60, min_=0)¶
Analizador de crontab expresiones. Cualquier expresión de la forma ‘grupos'(ver gramática BNF a continuación) es aceptada y expandida a un conjunto de números.Estos números representan las unidades de tiempo en las que el crontab necesita torun:
digit :: '0'..'9'dow :: 'a'..'z'number :: digit+ | dow+steps :: numberrange :: number ( '-' number ) ?numspec :: '*' | rangeexpr :: numspec ( '/' steps ) ?groups :: expr ( ',' expr ) *
El analizador es un propósito general uno, útil para analizar las horas, los minutos andday_of_week expresiones. Ejemplo de uso:
>>> minutes = crontab_parser(60).parse('*/15')>>> hours = crontab_parser(24).parse('*/4')>>> day_of_week = crontab_parser(7).parse('*')
También puede analizar expresiones day_of_month y month_of_year si se inicializa con un mínimo de 1. Ejemplo de uso:
>>> 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')
El máximo posible ampliado valor devuelto se encuentra por la fórmula:
max_ + min_ - 1
exceptionParseException