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.

Script de PHP para controlar procesos en segundo plano.

Quiero alojar un script que reaccione a solicitudes como estas:

script.php?req=10

Eso significa, establecer un contador cada 10 ms…

Esta solicitud se realiza varias veces con valores diferentes y el “temporizador” debe ajustarse con cada solicitud hasta que el valor sea 0.

Por lo tanto, para mí debe haber algún tipo de proceso en segundo plano con ajuste en vivo que podría ser controlado desde el script php y no tengo la idea correcta de cómo resolver esto. ¡Cualquier idea es bienvenida!

Muchas gracias,
Tobi

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Alojamiento y respuesta a solicitudes con PHP y temporizador

    Si desea alojar un script de PHP que responda a solicitudes como script.php?req=10, donde el parámetro req establece un contador que aumenta a una tasa de 10ms, deberá implementar un temporizador y un proceso en segundo plano en su script.

    Para ello, puede definir un bucle que se ejecute cada 10ms e incremente un contador hasta que el valor de req sea 0. También puede usar la función sleep() para detener temporalmente el bucle durante la cantidad de tiempo especificada.

    Aquí hay una implementación básica del script:

    <?php
    
    $req = $_GET['req'];
    
    while ($req > 0) {
        // Haz algo
        $counter++;
        echo $counter;
    
        // Duerme durante 10ms
        usleep(10000);
    
        // Decrementa el contador
        $req--;
    }
    
    ?>
    

    Este script incrementa un contador cada 10ms hasta que el valor de req es 0. Puede modificar el código dentro del bucle para hacer algo más.

    Para ejecutar este script como un proceso en segundo plano, puede usar una herramienta como screen o nohup en la terminal del servidor o usar un administrador de procesos en segundo plano de terceros como Supervisor.

    ¡Espero que esto ayude! Háganos saber si tiene alguna pregunta más.

Comments are closed.