2010-11-17 14 views
5

Estoy tratando de ejecutar algunos scripts de Python para manipular algunas imágenes en mi sitio web. El programa/herramienta externo está escrito en python y se llama PHATCH. Estoy en Windows y uso WAMP como mi servidor web.La ejecución de varios scripts de Python al mismo tiempo hace que PHP/Apache cuelgue

La ejecución de solo un script parece funcionar bien, pero necesito ejecutar 4 scripts al mismo tiempo (para generar 4 imágenes diferentes), mi navegador solo cargará y Apache/PHP se congelará.

La ejecución de PHP parece congelarse y colgar debido a varias llamadas de sistema() una después de la otra. Aquí está un ejemplo de cómo lo estoy usando:

system("C:\\python\\python.exe C:\\phatch\\phatch.py script1.phatch"); 
system("C:\\python\\python.exe C:\\phatch\\phatch.py script2.phatch"); 
system("C:\\python\\python.exe C:\\phatch\\phatch.py script3.phatch"); 
system("C:\\python\\python.exe C:\\phatch\\phatch.py script4.phatch"); 

Si sólo hago la primera, que está bien, pero tan pronto como agrego los demás, todo se congela.

+1

¿Has probado los cuatro individualmente? Es decir, intentó script1.phatch, luego lo reemplazó con script2.phatch, etc.? Puede ser que sea uno de los cuatro guiones el problema. –

+0

Te das cuenta de que no está ejecutando los 4 al mismo tiempo, ¿verdad? Los ejecuta en serie (uno después del otro) ... La única forma de evitarlo en Windows es hacer algo como [esto] (http://stackoverflow.com/questions/4197579/nohup-on-windows-exec-without -waiting-for-finish-php/4197625 # 4197625) – ircmaxell

+0

¿Se ha molestado en verificar la carga del sistema en el Administrador de tareas? – stillstanding

Respuesta

0

¿Pueden ejecutarse varias copias de phatch simultáneamente desde la misma cuenta? ¿Has probado esto sin PHP y Apache?

es posible que varias copias que comienzan al mismo tiempo accedan a los mismos archivos, quizás utilicen los mismos archivos temporales (incluso con nombres únicos, si el nombre se basa en la hora, pueden tener el mismo nombre ...)

+0

¡Buena pregunta! Eso podría ser el problema; ve que solo se inicia un "cmd.exe", por otros medios, solo se inicia una instancia de phatch y es posible que se congele. ¿Alguna idea de cómo generar 4 llamadas diferentes al script? – Eric

+2

u otra idea leyendo tus comentarios en la parte superior: si quieres que se ejecuten en serie, ¿por qué no simplemente escribir un breve script de Python que ejecute los cuatro scripts? Entonces solo necesita una llamada al sistema. y desde el punto de vista de la eficiencia, ¡Python solo se inicia UNA VEZ! – winwaed

+0

Oh ... Me siento tan tonto ... \: ¡Lo intenté ahora y parece funcionar perfectamente! Lo he intentado ahora como 50 veces y no he colgado tan lejos, así que supongo que fue una solución. GRACIAS (: – Eric

Cuestiones relacionadas