Ich brauche eine Funktion, die eine abfangbare Ausnahme auslösen wird, nachdem eine aufrufbare Funktion zu lange benötigt, um ihre Aufgabe abzuschließen.Begrenzen Sie die Ausführungszeit eines aufrufbaren in PHP
Hinweis: Ich beziehe mich nicht auf die maximale Ausführungszeit für ein PHP-Skript.
Die Funktion sollte funktionieren wie die call_user_func
, außer dass es ein Zeitlimit in Sekunden für die aufrufbaren dauert.
function task() {
// does a lot of work...
}
try {
call_user_func('task', 30); // limit to 30 seconds
} catch (TimeoutException $ex) {
// ....
}
Ich kann nicht benutzerdefinierte Logik zur task
Funktion hinzufügen, eine Ausnahme zu werfen, auf seine eigenen. Die Idee ist Force die aufrufbaren Methoden zum Abbrechen oder Fehlschlagen nach X Anzahl von Sekunden.
Ich habe CLI-Skripte, die ich regulieren möchte, wie lange sie dauern, um eine Aufgabe abzuschließen.
[Diese Frage] tun, dass (http://stackoverflow.com/questions/70855/how-can-one-use-multi-threading-in-php-applications) könnte Ihnen einige Hinweise geben. Die Implementierung eines eigenen Schedulers ist jedoch keineswegs trivial, viele Randfälle müssen generell berücksichtigt werden. – ccKep