¿Se puede ejecutar PHP como back end para siempre? ¿Como con Repetir hasta?

En primer lugar, PHP, que es un lenguaje de programación de back-end, utiliza muchos recursos del servidor para representar su sitio web, puede verificar aquí [1] para realizar un seguimiento del consumo de memoria de su programa / sitio web PHP. El servidor es igual que su PC: tiene una CPU y una memoria principal, si ejecuta un bucle sin fin en su computadora / servidor, se ejecutará hasta que se consuma todo el espacio de memoria disponible y luego detendrá o bloqueará la computadora, luego el La computadora puede reiniciarse.
En su servidor, si está utilizando un servidor compartido, como este [2], lo que significa que está compartiendo su servidor con otros clientes de su empresa de alojamiento, por ejemplo, se le asignará un cierto tamaño de espacio web, si ejecuta un bucle interminable en este tipo de espacio web se ejecutará hasta que se consuma toda la memoria. Digamos, por ejemplo, un bucle = una visita de usuario y en una situación en la que 20G de espacio web pueden acomodar 25,000 visitas de usuario. Luego, el bucle se ejecutará 25,000 veces antes de que el servidor falle o antes de que su sitio se cierre. Dado el rápido ritmo al que las computadoras de hoy en día con poderosos procesadores Intel ejecutan bucles, el bloqueo / apagado / reinicio de su servidor puede ocurrir dentro de unos minutos, digamos 5 minutos, si esto sucede constantemente, cada 5 minutos será bloqueado por su empresa de alojamiento o ser contactado por ellos para corregir un error en su sitio. Un bucle sin fin es esencialmente un error y no debe permitirse ni jugarse en un entorno de producción de ninguna manera.

Notas al pie

[1] memory_get_usage – Manual

[2] Alojamiento web diseñado para el mejor rendimiento y satisfacción del sitio web

usando set_time_limit (0) le dice al intérprete que se ejecute hasta completar el script, y si escribe un bucle que nunca termina como while (verdadero) {}, sí, php se ejecutará para siempre o, más pragmáticamente, hasta el proceso se mantiene vivo
esto se usa habitualmente en scripts de lotes de CLI para usos legítimos y se evita en páginas web, por razones obvias. El rendimiento de este método depende del tipo de elaboración que debe hacer, en mi experiencia, generalmente es lo suficientemente bueno.

¿Quién quiere vivir para siempre de todos modos?

No, existen mecanismos que puede configurar para que se ejecuten por períodos prolongados. Pero al final del día no hay infinito y más allá de la opción. Finalmente, su secuencia de comandos o servidor expirará la solicitud.

Ahora, en una nota diferente, puede configurar un trabajo cron (o un planificador pendiente en su distribución). El cual puede ejecutar cada X ampliamente configurable a segundos, minutos, días, días específicos meses, también depende de las habilidades cron de su distribución, por lo general, desea evitar ejecutar una en el corto plazo hasta la última, ya que tiene sus ramificaciones así como cada ejecución es una nueva instancia en sí misma de ser creada.

Es alimento para el pensamiento en general. Pero no puedo imaginar tener un proceso que nunca termine, simplemente no habría ganancia de eso, bueno, ninguno en lo que pueda pensar al menos.

Sí tu puedes.

Puede iniciar el código PHP desde la línea de comandos, que luego podría ejecutarse para siempre.

Realizo copias de seguridad de esa manera. Es cierto que no dejo que el código se ejecute para siempre, sino que lo “pateo” a través de cron y dejo que realice una secuencia de respaldo y luego salga. Eso requiere menos recursos que mantenerlo en funcionamiento esperando el momento adecuado para una copia de seguridad, y no obtengo un tiempo de espera como lo haría si el código se llamara a través de una solicitud HTTP.

Curiosamente, este script está escrito de tal manera que sabe si se ejecuta desde la línea de comandos o mediante una solicitud HTTP. En el último caso (accesible a través del portal de administración de mi servicio) generará HTML, de lo contrario, texto sin formato.

En realidad, esto podría usarse para muchas otras cosas, como la recopilación diaria de información de la base de datos para estadísticas, etc., limpieza de la base de datos, eliminación de archivos extraviados, etc.

El código en ejecución todo el tiempo podría usarse para una cola de trabajos por lotes, donde los trabajos por lotes se realizarían de forma asíncrona a las solicitudes HTTP. Todos los scripts accederían a la misma base de datos, para ingresar y generar metainformación de trabajo por lotes, etc.

More Interesting

¿Cuáles son algunos ejemplos de API RESTful bien diseñadas?

¿Cuáles son las tecnologías utilizadas por los desarrolladores de back-end?

Al completar el certificado de back-end de Free Code Camp, ¿debo usar un idioma de back-end que se enseña en mi programa de informática en la universidad?

¿Cuál es tu stack para el desarrollo de backend?

La forma de decidir el problema debe solucionarse en el back-end o front-end

¿Me aconseja codificar mi back-end (usando una arquitectura LAMP) o seleccionar un BaaS (Firebase) para mi proyecto de medición de rendimiento de banda ancha?

¿Es difícil encontrar trabajo como desarrollador de backend en Malasia o Singapur?

¿Puedo obtener más de 1 rupia lakh por mes si voy a ser un desarrollador de pila completa con Ruby on Rails como una habilidad de fondo?

¿Se puede integrar big data con back end dev?

¿Qué métricas consideran los desarrolladores al elegir los marcos de aplicaciones web front-end o back-end?

¿Qué es el backend como servicio?

¿Vale la pena elegir un entorno .NET en lugar de Python para desarrollar un back-end para un proyecto piloto?

¿Qué hace un desarrollador web creativo y qué lo hace diferente de un desarrollador front-end y un desarrollador back-end?

¿Cuáles son los mejores idiomas de código abierto (front-end y back-end) para la plataforma de reserva de autobuses en línea como megabus.com?

¿Cuál es la arquitectura de Grabhouse? ¿Qué tecnología usan en el frente y el back-end?