¿Cómo puedo guardar un recurso proceso de proc_open con el fin de comprobar el estado más adelante?

StackOverflow https://stackoverflow.com/questions/949437

Pregunta

Estoy corriendo un sh guión que ejecuta un java proceso a través de PHP en servidor de Ubuntu. Estoy usando proc_open para ejecutar el proceso. por lo general el flujo de trabajo es como sigue:

  • solicitar una página ->
  • se ejecuta la escritura (hasta que esté terminado) ->
  • página de resultados.

En mi caso, el script se ejecuta en paralelo, de modo que el servidor no va a esperar hasta que finalice la secuencia de comandos (se tarda horas en ocasiones por lo que no se puede), por lo que necesita para ahorrar recursos que de alguna manera de seguir más adelante (estado de el proceso o simplemente detenerlo).

El tipo de recurso es "proceso", he usado esta función get_resource_type para conseguirlo.

Serialize no funcionará en este caso - es un recurso excepcional para ella (se puede ver en http://il2.php.net/manual/en/function.serialize.php dentro de la caja parámetros).

Mi objetivo es un buen manejo del proceso. Cómo alguien sabe cómo puedo usar los recursos o de otra manera que lo haría para el manejo del proceso.

¿Fue útil?

Solución

No se puede almacenar tipos de recursos para su uso posterior en PHP. Lo que hay que hacer es poner en práctica alguna forma de comunicación asíncrona - tal vez un archivo, donde se escribe la información de estado y el otro lee, una memoria compartida, una tubería con nombre, ...

Me gustaría ver en la PCNTL extensión . Pista:. Bifurca no es posible desde dentro de un entorno de servidor web por razones de seguridad

Otros consejos

  

En mi caso, el script se ejecuta en paralelo, de modo que el servidor no va a esperar hasta que finalice la secuencia de comandos (se tarda horas en ocasiones por lo que no se puede) ..

Eso no debería ser un problema en sí mismo. Usted puede tener un php-proceso de larga duración, siempre y cuando no se inicia desde un servidor web. Si usted necesita para iniciar el proceso de una aplicación web, sugeriría que se inserta una entrada en una tabla de base de datos, y luego tener una tarea programada ejecutar un script, que comprueba esta cola y hacer el procesamiento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top