PHP - llamar varias veces a un mismo proceso

 
Vista:
sin imagen de perfil

llamar varias veces a un mismo proceso

Publicado por Ricchar (15 intervenciones) el 07/02/2014 11:48:39
Buenas! Mi problema surge porque estoy diseñando una web y en una de las paginas, llamo a un programa que puede durar hasta 20 minutos depende las variables que se le pasen, mientras esta ejecutandose no puedo abrir otra pestaña y lanzar otra vez ese proceso pero con variables distintas, tengo o que esperar a que termine o abrir la web con otro navegador, estoy probando con pcntl_fork(); y no hay manera, y ya no se por donde meterle mano. Alguna idea? Con el fork simplemente hago algo asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
 
</head>
 
<body>
<?php
 
$father_pid = getmypid();
$pid = pcntl_fork();
if ($pid == -1)
{
        die('could not fork');
}
else if ($pid)
{
        print "I'm the Father mi PID is ".$father_pid." and my children is ".$pid."\n";
	exec("path-to-program");
        //pcntl_wait($status); //Protect against Zombie children
}
else
{
        print "I'm the Children, my PID is ".getmypid()." and the PID of my Father is ".$father_pid."\n";
	exec("path-to-program");
}
 
?>
</body>
</html>

Si ejecuto eso en 2 pestañas distintas con el mismo navegador, el resultado es el mismo PID para los dos....

Ideas? Sugerencias? algo que estoy haciendo mal... Cualquier cosa será bienvenida.

Saludos y gracias!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

llamar varias veces a un mismo proceso

Publicado por xve (6935 intervenciones) el 07/02/2014 17:07:03
Hola Ricchar, en nuestro caso, cuando tenemos que desarrollar una parte de la web que puede durar tanto tiempo como indicas, lanzamos un proceso del servidor ya sea en php como cliente (php-cli), o con Python, ya que si lo haces con PHP, aunque puedes indicar que no finalice por timeout, estas consumiendo un hilo del Apache... que depende donde, puede no ser posible.

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

llamar varias veces a un mismo proceso

Publicado por Ricchar (15 intervenciones) el 09/02/2014 20:59:33
Mmmmm.... No te sigo muy bien...como podría lanzar ese proyecto? Algún tuto o enlace donde se explique?

Un saludo y muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar