Tengo scripts php que invocan scripts de Perl para hacer varias cosas y, a veces, lo obtengo donde sigue y sigue sin obtener una respuesta, esto se basa en la variable que se pasa al script de Perl y lo estoy haciendo muchos diferentes en sucesión, así que no puedo depurarlo directamente ya que no tengo una respuesta de Perl ...Establecer un tiempo de espera para una función específica/bloque de código (no todo el script)?
Realmente me gustaría simplemente poder establecer una función php o bloque de código de tiempo de espera después de un cierto número de segundos .. He estado buscando en esto pero todavía no he encontrado nada sobre cómo hacer esto,
Estaba pensando que algo así podría funcionar, pero no creo que lo haría actualizar dinámicamente la variable $ time, pero tal vez hay una manera de obtener thi s para trabajar? Cualquier consejo se agradece
$time = time();
$timeout = $time + 5; //just as an example
do {
// do stuff
} while ($time < $timeout)
$ $ dentro de la mientras que para que se actualice, pero si su llamada del código perl está dentro del tiempo, no funcionará si esa es una llamada que espera su respuesta. – Prix
sí, ese es el problema, supongo que espera la devolución del perl sin importar qué – Rick
si no te importa realmente el retorno podrías hacerlo diferente, haz el comando como: 'exec (" my_command_here>/dev/null 2> &1 &"); 'que ejecutará su código en el fondo enviará la salida a un agujero negro. De esta forma su código php seguirá funcionando pero necesitará un acercamiento diferente para saber si ha terminado o no ... podría por ejemplo, haga que su archivo perl cree un archivo con 1 o 0 en él como un archivo PID y podría controlarlo desde su ciclo como quisiera. – Prix