Formato y zona horaria del trabajo cron

Los trabajos cron se programan en intervalos recurrentes especificados con un formato activado unix-cron. Puedes definir una programación para que tu trabajo se ejecute varias veces al día o en días y meses específicos. (Aunque ya no recomendamos su uso, la versión La sintaxis de cron de App Engine es todavía es compatible con los trabajos existentes).

Formato del trabajo cron

Puedes usar la consola de Google Cloud, Google Cloud CLI o la API de REST de Cloud Scheduler para establecer tu programa.

Un programa se define con el formato de cadena de unix-cron (* * * * *), que es un un conjunto de cinco campos en una línea que indica cuándo se debe ejecutar el trabajo.

Los campos de hora tienen el siguiente formato y los valores posibles, y deben seguir este pedido:

|------------------------------- Minute (0-59)
|     |------------------------- Hour (0-23)
|     |     |------------------- Day of the month (1-31)
|     |     |     |------------- Month (1-12; or JAN to DEC)
|     |     |     |     |------- Day of the week (0-6; or SUN to SAT; or 7 for Sunday)
|     |     |     |     |
|     |     |     |     |
*     *     *     *     *
Campo Formato de valores válidos
Minuta 0-59
Hora 0-23
día del mes 1-31
Mes 1-12 (o de ENE a DIC)
Día de la semana 0-6 (o DOM a SAT; o 7 para el domingo)
  • Minuto: Indica cuánto tiempo después de la hora en la que se ejecuta tu trabajo, en minutos. Por ejemplo, si el minuto se establece en 0, el trabajo se ejecutará a la parte superior de la hora (porque es 0 minutos después de la hora) Entonces, si la hora son las 8:00 a.m., el trabajo se ejecuta a las 8:00 a.m.

  • Hour: Indica qué tan pasada la medianoche se ejecutará tu trabajo, en horas. (se redondea a la hora más cercana, porque los minutos restantes se indican en el campo minute). La medianoche es 0 y el mediodía es 12. Por ejemplo, la hora se establece en 0, el trabajo se ejecuta a medianoche (porque esa hora es 0 horas después de la medianoche).

  • Día del mes:Indica la fecha calendario del mes. Por ejemplo: 1 el primer día del mes. Cloud Scheduler no Admite L para que represente el último día del mes.

  • Month: Indica el mes. Especifica el número de mes o los primeros tres letras del nombre del mes en mayúsculas. Por ejemplo, 1 para enero o lo que equivale a JAN.

  • Día de la semana:Indica el día de la semana. El lunes es el martes por la 1 es 2, y así sucesivamente. 0 o 7 pueden indicar el domingo. Especifica el día del la semana, ya sea por un número o por las primeras tres letras del nombre del día de la semana en mayúsculas (por ejemplo, SUN para domingo).

    • Este campo se evalúa como un OR inclusivo con el day of the month a menos que la política marque uno de estos campos como no restringido asterisco (*). Por ejemplo, si el día del mes se establece en 1 y el día de la semana se configura como SAT, el trabajo se ejecuta el primer día de la mes y todos los sábados del mes, incluso si el primer día del el mes no es sábado. Si el día de la semana no tiene restricciones (establece a *), el trabajo se ejecuta solo el primer día del mes.

Coincidencias con todos los valores

Para hacer coincidir todos los valores de un campo, usa el asterisco: *. Cuando un campo se establece en el asterisco, el campo coincide con todos los valores válidos para ese campo siempre que se cumplan las demás condiciones del campo. Establecer un campo con el asterisco es a veces se denomina dejar el campo sin restricciones, ya que no restringidas a un valor específico.

Estos son dos ejemplos en los que el campo de minutos se deja sin restricciones:

  • * 0 1 1 1: El trabajo se ejecuta cada minuto a la medianoche del 1 de enero. y los lunes.
  • * * * * *: El trabajo se ejecuta cada minuto (de cada hora, de cada día del porque cada uno de estos campos también está libre de restricciones).

El asterisco es equivalente a un caso especial de un rango, donde el el rango comienza con el primer valor válido del campo y termina en el último valor del campo (por ejemplo, 0-59 para el campo de minutos).

Coincidencia con un rango

Para que coincidan con un rango de valores, especifica los valores de inicio y finalización, separados por un signo guion (-). No incluyas espacios en el rango. Los rangos son inclusivos. El El primer número debe ser menor que el segundo. Si usas el modo abreviado nombres para el mes o día de la semana (por ejemplo, JAN en lugar de 1 para la primera del año), el primer valor debe estar antes del mes o la semana que el segundo valor.

Los siguientes ejemplos equivalentes se ejecutan a la medianoche de los lunes, martes, Miércoles, jueves y viernes (para todos los meses):

  • 0 0 * * 1-5
  • 0 0 * * MON-FRI

Cómo hacer coincidir una lista

Las listas pueden contener cualquier valor válido para el campo, incluidos los rangos. Especifica tus valores separados por una coma (,). No incluyas espacios lista.

Ejemplos:

  • 0 0,12 * * *: El trabajo se ejecuta a la medianoche y al mediodía.
  • 0-5,30-35 * * * *: El trabajo se ejecuta en los primeros cinco minutos de cada media hora (al final de la hora y media después de la hora)

Cómo omitir valores en un rango

Puedes omitir valores en un rango especificando la velocidad a la que a través del rango. A veces, esto se conoce como el uso de una función de paso (o valor del paso o expresión de frecuencia). Para ello, especifica el rango, seguido de barra diagonal (/) y la velocidad a la que deseas saltar por el rango.

Puedes usar el asterisco (*) para indicar el rango de todos los valores del valor . Cuando se usa el asterisco, el primer valor en el rango es 0 por el minuto, hora y día de la semana (domingo), y 1 para los campos día del mes y mes.

El valor del paso no puede ser mayor que el valor más alto posible para el campo. El paso predeterminado es 1, por lo que la función de paso /1 es lo mismo que no usar una función de paso en absoluto.

Ejemplos de rangos que usan funciones escalonadas:

  • */2: Esta es una función de paso válida para cualquier campo. En el campo de minutos, coincide con 0, 2, 4, ... , 58. Para la hora, coincide con 0, 2, 4, ... , 22. Para el día del mes, coincide con 1, 3, 5, ... , 31 (para un mes con 31 días). Para el mes, coincide con 1, 3, 5, ... , 11. Para el día de la semana, coincide con 0, 2, 4, 6.

  • 0-12/2: Esta es una función de paso válida para los campos de minutos y horas. Integra coincide con 0, 2, 4, ... , 12.

Ejemplos de programas con funciones escalonadas:

  • */2 * * * *: El trabajo se ejecuta cada dos minutos.

  • 0 0-12/2 * * *: El trabajo se ejecuta cada dos horas, por hora. La primera ejecución es a medianoche. La última vez que corriste es al mediodía.

Programas de muestra

En la siguiente tabla, se muestran algunos programas de trabajo cron de muestra y su descripción:

Programa Formato del trabajo cron Explicación
Cada minuto * * * * * Se ejecuta en minutos. Por ejemplo, 9:00 a.m., 9:01 a.m., :02 a.m. y así sucesivamente.
Cada 1 hora 0 * * * * Se ejecuta según la hora. Por ejemplo, 9:00 a.m., 10:00 a.m., 11:00 a.m., etc. .
Todos los días 0 0 * * * Se ejecuta a las 12:00 a.m. (00:00 en formato de 24 horas) todos los días.
Todos los días de semana
(de lunes a viernes)
Los siguientes valores son equivalentes:
  • 0 0 * * 1-5
  • 0 0 * * MON-FRI
Se ejecuta a las 12:00 a.m. (12:00 a.m. en formato de 24 horas) los lunes, martes, Miércoles, jueves y viernes
Todas las semanas Los siguientes valores son equivalentes:
  • 0 0 * * 0
  • 0 0 * * 7
  • 0 0 * * SUN
Se ejecuta los domingos a las 12:00 a.m. (12:00 a.m. en formato de 24 horas).
Todos los meses 0 0 1 * * Se ejecuta a las 12:00 a.m. (00:00 en formato de 24 horas) del primer día de la mes.
Todos los trimestres Los siguientes valores son equivalentes:
  • 0 0 1 1,4,7,10 *
  • 0 0 1 JAN,APR,JUL,OCT *
Se ejecuta a las 12:00 a.m. (00:00 en formato de 24 horas) del primer día de la para un programa trimestral estándar: 1 de enero, 1 de abril y 1 de julio y el 1 de octubre.
Todos los años Los siguientes valores son equivalentes:
  • 0 0 1 1 *
  • 0 0 1 JAN *
Se ejecuta a las 12:00 a.m. (00:00 en formato de 24 horas) del primer día de la primer mes del año (1 de enero).

Zona horaria

Puedes seleccionar la zona horaria para evaluar el programa La consola de Google Cloud (en la página Crear un trabajo, selecciona una Zona horaria de la lista) o a través de gcloud --time-zone cuando crear el trabajo.

El valor de este campo debe ser la abreviatura de la zona horaria utilizada en los base de datos tz. La zona horaria predeterminada es UTC.

En algunas zonas horarias, el horario de verano puede provocar que los trabajos se ejecuten o no. inesperadamente. Esto se debe a que Cloud Scheduler se ejecuta en un reloj real tiempo. En los casos en que una hora puede aparecer dos veces (como cuando los relojes pasan hacia atrás) y tu trabajo está programado en este momento, tu trabajo programado podría observar anomalías en la ejecución.

Si tu trabajo requiere una cadencia muy específica, quizás debas considerar seleccionar una zona horaria que no cumpla con el horario de verano. Específicamente: Se recomienda usar UTC para que Cloud Scheduler evite el problema por completo.