Procesos en background en PHP

Una de las clásicas limitaciones de programar en un entorno web es la limitación del tiempo de espera. Muchas veces necesitamos hacer algún proceso largo que no tengamos que espera a que se haga. Un claro ejemplo es hacer una exportación de datos que sabemos que tarda alrededor de 30 minutos.

Lo primero que se nos viene a la cabeza es aumentar el timeout de Apache, pero realmente no es una solución.

Lo segundo que se nos viene a la mente es un cronjob, pero no es realmente controlado sino que depende de un tiempo para ejecutarse y esto podría descontrolarnos.

Lo tercero, ahora nos avanzamos un poco más e intentamos mediante shell_exec ejecutar diferentes scripts php en background, pero shell_exec es el tipico agujero de seguridad que podemos dejar abierto.

Leer más …