Español

Herramientas de desarrollo · Generador de Crontab

Por qué cron no tiene campo de zona horaria: hora local, CRON_TZ y contenedores en UTC

· Antecedentes

cron zonas horarias programación

Una expresión de cinco campos que apunta a relojes en UTC, Tokio y Nueva York
Ilustración de vector original de ToolAcre

Una expresión cron no tiene zona horaria, por lo que los mismos cinco campos significan diferentes momentos en diferentes hosts. Esta publicación explica qué reloj usa cron, la extensión CRON_TZ y por qué los contenedores cambian la respuesta.

Los mismos campos producen diferentes instantes de vista previa cuando cambia la zona seleccionada

`0 9 * * *` contiene una hora pero ninguna ubicación. En ToolAcre, elegir UTC o Asia/Tokyo deja los cinco campos sin cambios mientras cambia el instante representado por cada 09:00 candidato a reloj de pared. Por lo tanto, un informe puede aparecer con horas de diferencia cuando dos entornos interpretan las mismas etiquetas locales en diferentes zonas.

El panel hace explícita esta dependencia con un selector "Mostrar las siguientes ejecuciones en". Utilice la zona de la máquina prevista al revisar el cronograma y luego registre esa suposición junto a la expresión. La selección afecta sólo a la vista previa del navegador; no está incrustado en el texto cron copiado.

La expresión no contiene ninguna zona; La selección del reloj del demonio externo no está configurada aquí.

Hay exactamente cinco especificaciones de campo, ninguna con nombre de zona horaria. `nextRuns` acepta la zona como una opción separada y utiliza de forma predeterminada el entorno de host visto por JavaScript. Esta separación demuestra que el contexto de la zona es externo a la expresión en el modelo de ToolAcre.

El libro de trabajo indica qué reloj lee cada demonio. Este repositorio no puede configurar ni inspeccionar un demonio, por lo que no establece ese comportamiento universal. Solo puede recomendar hacer coincidir la zona de vista previa con la interpretación documentada del objetivo y verificar el programador instalado de forma independiente.

La compatibilidad con CRON_TZ está fuera de este analizador y no se reclama

`CRON_TZ` no se analiza. Al ingresarlo en el cuadro de expresión se produce un error porque no son cinco campos y ningún control por campo almacena una directiva. La afirmación del libro de trabajo de que una implementación lo admite mientras que otras no requieren fuentes que no están presentes aquí.

Si un destino documenta una directiva de zona horaria, configúrelo y pruébelo allí. No espere que ToolAcre conserve la directiva al copiar una expresión. Mantenga los metadatos de la zona adyacentes a la programación hasta que se revise e implemente la configuración específica del objetivo.

La semántica del entorno TZ no está modelada

Una asignación `TZ` está igualmente fuera del alcance. El navegador utiliza una opción `timeZone` explícita para formatear y convertir, no una línea de entorno dentro de un archivo crontab. No puede saber si una tarea cambia la evaluación del cronograma, la salida del comando o ninguna de las dos cosas en otro sistema.

Esta corrección evita una suposición sutil pero costosa. Nombres similares no implican roles idénticos. Trate la selección de zonas del programador y el entorno del proceso como preguntas separadas y responda ambas desde la implementación de destino en lugar de desde un generador de expresiones.

Los valores predeterminados de contenedor y nube requieren evidencia de destino

Los contenedores y las imágenes de nubes no son inspeccionados por la ruta. No se consulta ningún socket Docker, reloj de host o servicio de metadatos. Las afirmaciones de que su valor predeterminado es UTC pueden ser ciertas en una implementación particular, pero no se pueden generalizar a partir de `Intl.DateTimeFormat` ejecutándose en el navegador de un lector.

Capture la zona objetivo real a través de sus herramientas y configuración documentadas. Luego seleccione el mismo nombre de IANA en ToolAcre cuando esté disponible. Una lista de zonas del navegador refleja lo que sabe su motor; no prueba que el objetivo contenga datos o configuraciones de zona idénticos.

Ejemplo resuelto: vista previa de 09:00 en dos zonas seleccionadas sin codificación de conversión estacional

Mantenga `0 9 * * *` fijo y obtenga una vista previa de un resultado en UTC, luego en América/New_York. Cada lista muestra 09:00 como tiempo de pared, pero los instantes de época difieren según el desplazamiento de zona aplicable. Evite publicar una conversión de hora permanente porque las compensaciones regionales pueden cambiar entre fechas.

Las pruebas demuestran este principio con las medianoches UTC y Tokio y con un trabajo diario en Londres en un cambio hacia adelante. Utilice los candidatos en vivo para las fechas que se revisan. Si la implementación convierte el cronograma a una hora UTC fija, documente la limitación estacional en lugar de dar a entender que un valor preserva el 09:00 local para siempre.

El manejo de candidatos de DST es un comportamiento de vista previa de ToolAcre, no una garantía de demonio

ToolAcre crea candidatos como componentes de calendario local y los convierte a través de datos de la zona del navegador. Se omite un tiempo de avance de primavera inexistente y una hora diaria ordinaria sigue siendo la misma hora local durante una transición probada. Estos son datos preliminares de la implementación.

No son garantías de ejecución para un demonio o programador de nube. Verifique la política de transición donde se ejecutará el trabajo. La vista previa puede revelar un riesgo y proporcionar instantes esperados, mientras que el programador implementado proporciona la observación autorizada de si comienza una acción.

Conclusión: un horario solo se completa con su zona: cree los campos en el generador y luego registre la zona horaria junto a ellos

Una programación está operativamente incompleta sin contexto de zona aunque sus cinco campos estén sintácticamente completos. ToolAcre representa esa verdad al mantener la zona en un selector separado y mostrar la lista de relojes de pared resultante. La expresión copiada por sí sola no puede llevar a la elección.

Registre la expresión y la zona juntas, verifique la configuración del objetivo y vuelva a visitar los candidatos cerca de los cambios de compensación. El generador crea y explica horarios; no configura el reloj del servidor, no escribe directivas de zona horaria ni promete ejecución. Ese límite hace que la vista previa sea útil sin exagerar el control.