El servidor MySql y Apache permanecen en hora UTC.

Resuelto
cocodu67... Mensajes publicados 3178 Fecha de registro   Estado Miembro Última intervención   -  
cocodu67... 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

  1. 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.

    0
    1. cocodu67... Mensajes publicados 3178 Fecha de registro   Estado Miembro Última intervención   145
       

      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 ...

      0
      1. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > cocodu67... Mensajes publicados 3178 Fecha de registro   Estado Miembro Última intervención  
         

        En cuanto a las tareas cron, registraría en la base de datos el momento de la próxima ejecución, para protegerse contra los cambios de hora y para gestionar las situaciones en las que el servidor está detenido durante un cierto tiempo.

        0
      2. cocodu67... Mensajes publicados 3178 Fecha de registro   Estado Miembro Última intervención   145 > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
         

        Disculpe, pero ¿puede explicarme en qué situación podría haber un problema si la hora de ejecución está indicada en el código PHP?

        0
      3. yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención   1 588 > cocodu67... Mensajes publicados 3178 Fecha de registro   Estado Miembro Última intervención  
         

        En el cambio de estación, cuando la hora retrocede, existe la posibilidad de ejecutar dos veces una tarea.

        Si el servidor se detiene unas horas y reinicia, probablemente sea útil ejecutar las tareas que deberían haberse ejecutado durante la detención.

        0
      4. cocodu67... Mensajes publicados 3178 Fecha de registro   Estado Miembro Última intervención   145 > yg_be Mensajes publicados 23437 Fecha de registro   Estado Colaborador Última intervención  
         

        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.

        0