Estoy intentando configurar un archivo de activación php que desencadenará un proceso en segundo plano. (Consulte this question)PHP exec() como proceso en segundo plano (Windows Wampserver Environment)
Estoy haciendo esto en un entorno Windows Wampserver.
Entonces, por ejemplo, tengo trigger.php
que ejecuta la función exec que requiere que mi backgroundProcess.php
se analice y ejecute.
Sin embargo, el problema es que mi archivo trigger.php
está esperando que el comando exec()
termine de ejecutar backgroundProcess.php
antes de que se detenga. El proceso en segundo plano se ejecuta durante aproximadamente 20-30 segundos, y trigger.php
está esperando todo ese tiempo hasta que backgroundProcess.php
haya finalizado por completo.
¿Eso tiene sentido? Aquí está el archivo trigger.php
que ejecuta el comando exec()
exec('C:\wamp\bin\php\php'.phpversion().'\php.exe -f C:\path\to\backgroundProcess.php > C:\wamp\bin\php\php'.phpversion().'\dev\null &');
Básicamente, estoy queriendo trigger.php
sólo desencadenar la backgroundProcess y no esperar a que termine.
EDITAR
Problema resuelto con el siguiente comando:
$WshShell = new COM("WScript.Shell");
$oExec = $WshShell->Run("C:\wamp\bin\php\phpVERSIONNUMBER\php-win.exe -f C:/wamp/www/path/to/backgroundProcess.php", 0, false);
Este han estado causando problemas a mí de una manera aleatoria. Lanzar excepciones sobre no poder ejecutar el comando. Verifica mi respuesta. –
¿Y qué hay en el archivo backgroundProcess.php? – user3120717