Ich habe PHP-Skripte, die Perl-Skripte aufrufen, um verschiedene Dinge zu tun und manchmal bekomme ich es, wo es einfach weiter und weiter geht, ohne eine Antwort zurück zu bekommen, dies basiert auf der Variablen, die an das Perl-Skript übergeben wird viele verschiedene nacheinander, so dass ich es nicht direkt debuggen kann, da ich keine Antwort von Perl habe ...Legen Sie eine Zeitüberschreitung für eine bestimmte Funktion/einen Codeblock (nicht das gesamte Skript) fest?
Ich würde wirklich gerne nur in der Lage sein, eine PHP-Funktion oder einen Block von Code auf Timeout nach einer bestimmten Anzahl von Sekunden .. Ich habe auf dieser Suche, habe aber noch nichts gefunden, wie dies zu tun,
Ich dachte, etwas wie das könnte funktionieren, aber ich denke nicht, dass es würde Aktualisieren Sie die Variable $ time dynamisch, aber vielleicht gibt es eine Möglichkeit, thi zu erhalten s arbeiten? Jede Beratung wird geschätzt
$time = time();
$timeout = $time + 5; //just as an example
do {
// do stuff
} while ($time < $timeout)
Sie $ Zeit innerhalb der laufen während für es zu aktualisieren, aber wenn Ihr Anruf des Perl-Codes innerhalb der Weile ist, wird es nicht funktionieren, wenn das ein Anruf ist, der auf die Antwort davon wartet. – Prix
yeah das ist das Problem dann, ich denke, es wartet auf die Rückkehr der Perl egal was – Rick
Wenn Sie nicht wirklich über die Rückkehr Sie könnten es anders machen, machen Sie den Befehl wie: 'exec (" my_command_here>/dev/null 2> &1 &"); 'das wird deinen code auf dem hintergrund ausführen sende die ausgabe an ein schwarzes loch auf diese weise läuft dein php code weiter, aber du brauchst dann einen anderen ansatz um zu wissen ob das wetter beendet ist oder nicht ... du könntest zum Beispiel, mach deine Perl-Datei eine Datei mit 1 oder 0 darauf wie eine PID-Datei und du kannst sie von deiner Schleife aus steuern, wie du es wolltest. – Prix