Noticias Raspberry Pi

Pausa un script en PHP usando sleep o usleep

En este tutorial, le mostraremos cómo usar la función sleep o usleep en PHP para pausar el script.

Al escribir sus secuencias de comandos PHP, puede haber momentos en los que desee pausar o poner la secuencia de comandos en suspensión.

Pausar la ejecución del script es útil en varios escenarios. Un caso de uso de ejemplo es que cuando realiza muchas solicitudes de red, puede suspender su secuencia de comandos PHP para evitar que inunde la red.

También puede usarlo para evitar que un script consuma una cantidad anormal de recursos de CPU. El uso de la función de suspensión entre tareas puede evitar que las tareas que sobrecargan rápidamente un procesador se completen rápidamente.

Las dos formas principales de poner un script en reposo en PHP son usar «sleep()» o «usleep()». En las siguientes secciones cubriremos ambos.

Una explicación rápida entre estos es que la función «dormir ()» funciona en segundos y «usleep ()» funciona en microsegundos.

La función dormir() de PHP

Mediante el uso de la función de suspensión de PHP, es posible pausar la ejecución de un script durante un cierto número de segundos.

La función solo toma un parámetro llamado «$ segundos», donde establece el tiempo de suspensión en segundos completos.

A continuación puede ver la definición de la función sleep() en PHP. Puede ver que su parámetro se toma como un número entero y devuelve un número entero.

La función sleep() devolverá cero (0) cuando se haya dormido con éxito. Sin embargo, si la secuencia de comandos falla, devolverá un valor booleano falso.

Como esta función puede devolver 0 o falso, asegúrese de utilizar el operador idéntico de PHP (===) al comprobar el valor devuelto. De lo contrario, el malabarismo de tipos de PHP considerará que 0 y falso son lo mismo.

tenga en cuenta que los segundos no pueden ser una fracción de segundo. Si necesita una fracción de segundo, use la función usleep.

Ejemplo de uso de la función sleep() en PHP

Ahora que conocemos la sintaxis de la función sleep(), escribamos un script PHP rápido para que pueda ver cómo funciona.

Usaremos la función de eco de PHP para mostrar la hora actual en este ejemplo. La hora actual se puede recuperar usando la función date(). La opción «h:i:s» se utiliza para obtener la hora, los minutos y los segundos actuales.

Comenzamos imprimiendo la cadena “Tiempo antes de dormir:”, concatenando la hora actual y, finalmente, el carácter de nueva línea (n).

Luego usamos la función dormir () de PHP, configurando su único parámetro en «5» para poner el script en suspensión por 5 segundos.

Finalmente, para mostrarle que el script se ha quedado dormido, imprimimos el texto «Tiempo después de dormir:», concatenando el tiempo actual.

Después de ejecutar este script, debería ver un resultado similar al que mostramos a continuación.

Con la diferencia horaria, puedes ver cómo la función de suspensión interrumpió la ejecución del script.

La función usleep() en PHP

Si necesita interrumpir la ejecución de su script PHP por menos de un segundo, deberá usar la función usleep().

Con esta función puede especificar cuántos microsegundos desea que el script duerma. Un microsegundo es una millonésima de segundo.

Por ejemplo, si quisiera poner su secuencia de comandos PHP en suspensión durante un cuarto de segundo (0,25), usaría el valor 250000.

A continuación puede ver la definición de la función usleep() en PHP. Tiene un único parámetro que siempre debe ser un número entero y devuelve un número entero.

Al igual que la función de suspensión, usleep devolverá 0 cuando se haya dormido con éxito. Sin embargo, si la función no duerme durante tanto tiempo, devolverá falso.

tenga en cuenta que es posible que el sistema host no admita el uso de microsueños de más de «1000000» (1 segundo).

Ejemplo de uso de la función usleep()

Para este ejemplo, usaremos la función PHP usleep() para dormir nuestro script durante 250.000 microsegundos (un cuarto de segundo).

Tendremos que usar el tiempo proporcionado por la función «microtime()» para rastrear esto. Esto nos proporciona la marca de tiempo actual de Unix en microsegundos.

Inicie el script recuperando el microtiempo actual y almacenándolo en la variable «$start_time».

Entonces podemos usar la función usleep(), pasando 250,000 para poner el script en suspensión por 250,000 microsegundos.

Después de dormir, volvemos a obtener el microtiempo y lo almacenamos en la variable “$end_time”.

Luego calculamos el tiempo total de ejecución restando la hora de inicio de la hora de finalización y almacenándola en la variable «$time».

Finalmente, usamos la función echo para mostrar el tiempo de ejecución del script. Esto nos mostrará cómo nuestro script durmió mientras se ejecutaba.

A continuación se muestra un ejemplo de lo que PHP imprimirá después de ejecutar el ejemplo anterior.

Notarás que la hora devuelta no es precisamente la hora de dormir, porque las funciones no se completan instantáneamente.

Conclusión

A lo largo de este tutorial, le hemos mostrado dos formas de pausar la ejecución de su script PHP.

Las dos funciones que exploramos en esta guía son las funciones de PHP sleep() y usleep(). Ambos tienen sus usos especiales, pero pausarán la ejecución del script.

Comente a continuación si tiene alguna pregunta sobre el uso de las funciones sleep y usleep en PHP.

Asegúrese de consultar nuestras otras guías de PHP y tutoriales de codificación.

Actualizaciones semanales directamente a su bandeja de entrada

¡Reciba nuestros proyectos de Raspberry Pi, tutoriales de codificación, guías de Linux y más!

Suscribir

También puede gustarte...