sql >> Base de Datos >  >> RDS >> Mysql

programar automáticamente la ejecución de un script php en un momento específico

Tienes 3 opciones. Mi recomendación:usa cron si puedes, manejado por el usuario si es necesario y daemon como último recurso.

(1) cron (como se menciona en los comentarios)

cron es un programador para sistemas Linux que ejecutará un trabajo de línea de comandos en su sistema. Inicia sesión en su servidor a través de ssh, escriba crontab -e y agregue una línea como esta:

4 5 * * * php /path/to/my/script.php

Esto ejecutaría el script a las 5:04 a. m. todos los días.

<?php
// /path/to/my/script.php

// Do something

Algunos servicios de alojamiento permiten ingresar trabajos cron con una GUI. También hay servicios cron externos, que llamarán a una URL en momentos específicos.

(2) demonio

Esta es la opción más avanzada y también la menos confiable:ejecuta un script de línea de comandos que contiene un bucle infinito. Luego, el script verifica periódicamente el estado y responde. Debido a que es probable que se bloquee después de meses de ejecución, debe tener una segunda secuencia de comandos para reiniciarlo en caso de que lo haga. Esto es mucho trabajo, pero es el enfoque más flexible.

<?php



while (1) {   

  // fetch $last_exec_timestamp from database

  if ($last_exec_timestamp < time() + 86400) {
    // set last_exec_timestamp to now in database

    // do something
  }
  sleep(5);

3. impulsada por el usuario

Si tiene una cantidad decente de tráfico en su sitio, simplemente puede incluir este trabajo en el pie de página, cuando no haya más resultados. Asegúrate de que este código sea rápido, o un usuario desafortunado lo estará esperando.

<?php

// fetch $last_exec_timestamp from database

if ($last_exec_timestamp < time() + 86400) {
  // set last_exec_timestamp to now in database
  // do something
}

También hay enfoques más sofisticados de "impulsado por el usuario" que no he probado personalmente en otro desbordamiento de pila pregunta .