Tu proceso dice a las nueve: ¿pero a las nueve de dónde?
Una tarea programada puede ejecutarse sin errores y llegar a una hora equivocada. Ocurre cuando una persona piensa en la hora de su reloj y el sistema trabaja con otra referencia. Antes de poner un proceso en marcha, hay que definir qué significa exactamente «a las nueve».
Escribe la regla antes de configurarla
No es lo mismo «cada día a las nueve en Barcelona» que «cada veinticuatro horas». Lo primero es un compromiso con el reloj local; lo segundo mide tiempo transcurrido. La diferencia importa cuando cambia la hora. La documentación de MDN explica que una fecha con zona horaria combina un instante, una zona y un calendario, y que no se puede asumir que todos los días tengan veinticuatro horas.
Para un informe diario, escribe una regla legible: días laborables, hora local, zona Europe/Madrid y destinatario. Añade qué ocurre los festivos. Si el sistema no conoce el calendario laboral que necesitas, no des por hecho que «de lunes a viernes» ya lo representa.
Separa hora local y registro técnico
Una zona con nombre, como Europe/Madrid, no equivale a un desplazamiento fijo respecto a UTC. Las reglas locales pueden cambiar. Guarda la regla de negocio con su zona y registra cada ejecución con un instante inequívoco. Así podrás explicar cuándo estaba prevista y cuándo ocurrió realmente, sin reinterpretar una hora aislada.
Prueba los casos que rompen la rutina
En un entorno de prueba, comprueba un cambio de hora, una ejecución retrasada y una interrupción del servicio. Decide qué hacer si una hora local no existe o se repite. No dejes esa decisión a una configuración que nadie ha leído. Define también si una tarea recuperada debe salir tarde o saltarse esa edición.
Evita duplicar una entrega tardía
Asigna una identificación a cada entrega prevista y consulta su estado antes de repetirla. Una notificación de «proceso iniciado» no confirma que el destinatario haya recibido el resultado. Registra preparación, intento y confirmación por separado. La prueba final es sencilla: alguien del equipo debe poder leer la regla y predecir la próxima entrega sin calcularla de memoria.