« Zurück zu Produkt

Dokumentation

UC_GetScriptSenderList

 array UC_GetScriptSenderList (int $InstanzID) 

Parameterliste

InstanzID

ID zum Util Control

Rückgabewert

Ein Array mit einem Eintrag je Auslöser, der seit dem Start ein Skript ausgeführt hat. Jeder Eintrag enthält folgende key => value Paare:

Index Typ Beschreibung
Count integer Anzahl der Skriptausführungen dieses Auslösers
Sender string Auslöser der Skriptausführung wie in $_IPS['SENDER'], z.B. "TimerEvent", "Variable" oder "RunScript"

Beschreibung

Die Funktion zählt jede gestartete Skriptausführung (Nachricht SE_RUNNING) und ordnet sie dem Auslöser zu. Der Auslöser entspricht dem Wert der Systemvariable $_IPS['SENDER'] im Skript, z.B. "TimerEvent" für zyklische Ereignisse, "Variable" für ausgelöste Ereignisse, "WebFront" für Bedienungen in der Visualisierung oder "RunScript" für IPS_RunScript. So lässt sich erkennen, woher eine hohe Skriptlast stammt, z.B. wenn UC_GetKernelStatistics eine dauerhaft gefüllte RequestQueueSize zeigt. Die aktuell laufenden Skripte liefert IPS_GetScriptThreadList.

Die Werte werden im Arbeitsspeicher seit dem Start von IP-Symcon aufsummiert und können nicht zurückgesetzt werden (erst ein Neustart beginnt wieder bei 0). Die Reihenfolge der Einträge ist nicht festgelegt.

Die ID der Util Control Instanz liefert z.B. IPS_GetInstanceListByModuleID mit der Modul-GUID {B69010EA-96D5-46DF-B885-24821B8C8DBD}. Existiert InstanzID nicht, schlägt die Funktion mit "Instance #... does not exist" fehl, gehört die Instanz zu einem anderen Modul, mit "Instance does not implement this function".

Beispiel

// ID der Util Control Instanz ermitteln
$id = IPS_GetInstanceListByModuleID('{B69010EA-96D5-46DF-B885-24821B8C8DBD}')[0];

// Skriptausführungen je Auslöser ausgeben
foreach (UC_GetScriptSenderList($id) as $entry) {
    echo $entry['Sender'] . ': ' . $entry['Count'] . PHP_EOL;
}
Haben Sie noch Fragen?