es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Automatización de tareas mediante PHP.

Debo llamar a una función de PHP cada segundo.

Si la coloco en un archivo PHP, se ejecuta varias veces cada vez que se llama a un usuario.

index.php

// código que quiero ejecutar cada segundo (o cada pocos segundos)
$bitsqlz = "SELECT id FROM tasks where id='$todoid' and state='0';";
$dataz = mysqli_query($con1, $bitsqlz);
while ($rowz= $dataz->fetch_assoc()) {
    $todoid= $rowz["id"];

    // no sé cómo, pero muchos usuarios pueden llegar aquí incluso si establezco state = 0 antes de todos los códigos
    // y la misma tarea se ejecuta varias veces

    $dataupd = mysqli_query($con1, "update todos set state=1 where id='$todoid'"); 

    // procesar bla bla bla...
}

¿O debo llamarlo en el servidor? (no sé cuál es la forma correcta y cómo hacer que se ejecute en el lado del servidor, tal vez Linux tenga un programa para esto, como tareas programadas)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para llamar a una función de PHP cada segundo, se recomienda ejecutarla en el lado del servidor utilizando un planificador o una tarea cron. Ejecutarla en el lado del cliente a través de un archivo PHP puede provocar que la función se ejecute varias veces cuando varios usuarios acceden al archivo simultáneamente.

    Para configurar un planificador o una tarea cron, puedes utilizar una herramienta de Linux como cron o una biblioteca de terceros como scheduler. Puedes establecer el intervalo para ejecutar la función de PHP cada segundo y especificar la ruta del archivo y el nombre de la función a ejecutar.

    Ejemplo utilizando una tarea cron en Linux:

    1. Abre el archivo crontab usando el comando crontab -e.
    2. Agrega la siguiente línea al archivo para ejecutar la función de PHP cada segundo:

      * * * * * /usr/bin/php /path/to/php/file.php function_name

      Los * * * * * indican el horario de la tarea cron, que representa el minuto (0-59), la hora (0-23), el día del mes (1-31), el mes (1-12) y el día de la semana (0-6, donde el domingo es 0).

    3. Guarda los cambios y cierra el archivo.

    Esto ejecutará la función de PHP especificada cada segundo en el lado del servidor sin necesidad de solicitudes desde el lado del cliente.

Comments are closed.