Dokumentation
IPS_GetScriptThreads
array IPS_GetScriptThreads (array $ThreadIDs)
Parameterliste
| ThreadIDs | Array mit den IDs der Threads. Bei einem leeren Array werden alle Threads geliefert |
Rückgabewert
Ein Array mit einem Eintrag je Thread in der Reihenfolge von ThreadIDs. Ist ThreadIDs leer, ist die Reihenfolge der Einträge nicht garantiert. Jeder Eintrag hat denselben Aufbau wie bei IPS_GetScriptThread.
Beschreibung
Diese Funktion ist nur für den internen Gebrauch vorgesehen und kann sich jederzeit ohne Ankündigung ändern oder entfallen.
Die Funktion liefert die Informationen der Threads mit den IDs ThreadIDs in einem Aufruf. Ist ThreadIDs leer, werden alle Threads geliefert. Existiert einer der Threads nicht, schlägt die Funktion mit "ScriptThread #... does not exist" fehl.
Die Funktion ist für den Abruf über die JSON-RPC Schnittstelle vorgesehen, z.B. für die Anzeige in der Konsole. In PHP-Skripten steht sie nicht zur Verfügung ("This function is not available for PHP") – dort kann das Ergebnis über IPS_GetScriptThreadList und IPS_GetScriptThread ermittelt werden.
PHP-Skripte werden in einem festen Pool von Threads ausgeführt. Die Anzahl der Threads legt der Spezialschalter ThreadCount fest (Standard 50, mindestens 25), die Threads haben die IDs 1 bis ThreadCount. Innerhalb eines Skripts enthält die Systemvariable $_IPS['THREAD'] die ID des eigenen Threads.
Beispiel
// Alle gerade beschäftigten Threads über die JSON-RPC Schnittstelle anzeigen
$rpc = new JSONRPC("http://user:password@127.0.0.1:3777/api/");
foreach ($rpc->IPS_GetScriptThreads([]) as $thread) {
if ($thread['StartTime'] > 0) {
printf("Thread %d: %s (%s) seit %d s\n", $thread['ThreadID'], $thread['FilePath'], $thread['Sender'], time() - $thread['StartTime']);
}
}
/* liefert z.B.:
Thread 3: scripts/12345.ips.php (RunScript) seit 0 s
*/