Ho script php che chiamano script perl per fare varie cose e a volte capisco dove va avanti e avanti senza ottenere una risposta, questo è basato sulla variabile che viene passata allo script perl e sto facendo un sacco di diversi in successione quindi non riesco a fare il debug direttamente perché non ho una risposta da perl ...Impostare un timeout per una funzione/blocco di codice specifico (non l'intero script)?
Mi piacerebbe davvero essere in grado di impostare una funzione php o un blocco di codice per timeout dopo un certo numero di secondi .. Ho cercato su questo ma non ho ancora trovato nulla su come farlo,
Stavo pensando che qualcosa del genere potrebbe funzionare ma non penso che sarebbe aggiorna dinamicamente la variabile $ time, ma forse c'è un modo per ottenerlo s per lavorare? Ogni consiglio è apprezzato
$time = time();
$timeout = $time + 5; //just as an example
do {
// do stuff
} while ($time < $timeout)
mentre per l'aggiornamento, ma se la chiamata del codice perl è all'interno del tempo non funzionerà se quella è una chiamata che attende la risposta di esso. – Prix
sì questo è il problema quindi, suppongo che aspetti il ritorno del perl non importa quale sia lo – Rick
se non ti interessa davvero il ritorno potresti farlo in modo diverso, fai il comando come: 'exec (" mio_command_qui>/dev/null 2> &1 &"); 'che eseguirà il tuo codice sullo sfondo invia l'output a un buco nero, in questo modo il tuo codice php continuerà a funzionare ma avrai quindi bisogno di un approcio diverso per sapere se il tempo è finito o meno ... potresti per esempio fai in modo che il tuo file perl crei un file con 1 o 0 su di esso come un file PID e puoi controllarlo dal tuo loop come volevi. – Prix