El servidor MySql y Apache permanecen en hora UTC.
Resueltococodu67... Mensajes publicados 3178 Fecha de registro Estado Miembro Última intervención -
Hola,
He cambiado de servidor permaneciendo en el mismo proveedor de hosting para cambiar la plataforma de gestión del alojamiento, ya no es CPanel esta vez. No es un VPS, pero tampoco un servidor dedicado, aunque la RAM y el CPU están reservados para mí.
Anteriormente, en CPanel, el servidor apache estaba en hora francesa, MySql también, PHP también. Ahora me dicen que solo PHP puede estar en la zona horaria francesa, lo cual ya se ha solucionado.
Por tanto, tengo dos problemas:
- Tengo tareas cron que deben ejecutarse a una hora precisa. ¿Cómo manejo eso? Puedo programarlas para que se inicien a las 22:00 y como la hora UTC es 2 horas menos que la hora francesa, se iniciará a medianoche hora francesa al cambio de día y el problema estará resuelto. Pero al cambiar la hora, dado que UTC no cambia, habrá solo una hora de diferencia en lugar de dos. No sé cómo hacerlo para que sea lo más sencillo posible.
- A veces uso NOW() en mis consultas SQL. Puedo cambiar eso y utilizar (NOW() + INTERVAL 2 HOUR), pero ¿cómo manejar eso ya que a veces no será + 2 horas, sino a priori 1 hora una vez que regresemos a la hora de invierno?
Gracias de antemano
1 respuesta
-
yg_be Mensajes publicados 23437 Fecha de registro Estado Colaborador Última intervención Ambassadeur 1 588
hola,
Para tu segundo problema, yo no utilizaría NOW SQL, calcularía más bien el momento en PHP y usaría ese momento calculado en la consulta SQL.
Otra forma de hacerlo sería registrar momentos UTC en la base de datos, en lugar de momentos en hora local. La conversión se realizaría en las interacciones con el usuario.
-
Hola,
Para que sea más limpio, siempre había utilizado NOW(), pero efectivamente PHP permite obtener fácilmente la fecha y la hora en el mismo formato que NOW().
En cuanto a las tareas cron que deben ejecutarse en un momento preciso, tengo una idea. Si una tarea debe iniciarse el 1 del mes a las 00:01, es posible programarla para que se ejecute cada hora todos los días y verificar en PHP (que tendrá la hora francesa) cuándo es el día 1 y la hora 0 y el minuto 1, poner todo el código entre llaves y comprobar con un if si ha llegado el momento, y ejecutar el interior de la condición if solo si es el día y la hora correctos. Eso implica muchas ejecuciones innecesarias, pero bueno ...Ah sí, es verdad que si retiramos una hora se ejecutará dos veces. En mi caso no es grave, pero en otras situaciones seguro que puede traer varios problemas.
De hecho, si el servidor se detiene un momento y la cron diaria no se ha lanzado, hay cosas que pueden no funcionar como se esperaba.
Les agradezco por sus consejos.
-