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