Programación de trabajos Cron sin frecuencias de colisión

0

Si tengo varios trabajos cron que se ejecutan:

  1. Cada minuto
  2. Cada 5 minutos
  3. Cada 15 minutos
  4. Cada hora
  5. A la medianoche

Luego, exactamente a las 00:00, tengo 5 trabajos ejecutándose al mismo tiempo.

Quiero agregar otro trabajo, que simplemente necesito ejecutar "una vez al día", ¡independientemente de cuándo! De hecho, quiero que el "cuándo" sea durante el menor tiempo de carga del servidor.

¿Cómo puedo hacer esto?

Mikhail
fuente

Respuestas:

0

Una forma de hacerlo es esta:

  1. llame al guión previsto una vez por hora.
  2. En la primera ejecución del script, busque un archivo temporal llamado .runTime.
  3. Si tal archivo existe
    1. Analízalo y obtén el formato de 24 horas.
    2. Si la hora actual es igual al tiempo analizado
      1. Elimina el .runTimearchivo y ejecuta el script deseado
    3. Si es una hora diferente - abortar ejecución
  4. Si no existe dicho archivo y la hora es 0 (medianoche)
    1. calcular una hora aleatoria entre 0 y 23 y escribirla en el archivo
Mikhail
fuente