Hallo.
Ich vermute das Problem gefunden zu haben warum manche Anwender (auch ich) bei aktivem Squeeze-Server-Skript mit einen sich stark verlangsamenden IPS zu kämpfen hatten.
Bei mir wirkte sich das so aus, dass das System innerhalb von 3-4 Minuten eine Minute Arbeitsrückstand in seiner Thread-Warteschlange angesammelt hatte und der Speicherbedarf massiv anstieg.
Das ging dann so lange bis die Kiste mir um die Ohren geflogen ist (=Neustart) oder das Skript deaktiviert wurde. In letzterem Fall holte IPS den Arbeitsrückstand langsam wieder auf bis es wieder in der Echtzeit angekommen war.
Stein des Anstosses war dieser Teil des Auswertungsskriptes:
if($array[1]=='status' and $array[4]=='subscribe%3A2') {
foreach($array as $item)
{
$item = utf8_decode(urldecode($item));
$chunks = explode(":", $item);
if($chunks[0] == "time")
{
SetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, date('i:s', $chunks[1]));
SetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, sprintf('%01.0f', $chunks[1]));
}
if($chunks[0] == "duration")
{
SetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, date('i:s', $chunks[1]));
SetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, sprintf('%01.0f', $chunks[1]));
}
if(GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/) !== "00:00") {
slider(34996 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/));
slider2(36846 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position Neu]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/));
}
}
}
Sobald ich die beiden Zeilen mit den Slidern auskommentiert hatte lief das Skript ganz brav vor sich hin. Mir ist dann aufgefallen, dass pro Aktualisierung durch den LMS (da Sie innerhalb der Schleife stehen) jeder der beiden Slider 33 mal aktualisiert wird. Und damit wurden Sie auch entsprechend häufig im Webfront aktualisiert.
Ich habe diesen Teil daher aus der Schleife rausgenommen so daß die Slider nur noch einmal pro Aktualisierungszyklus neu geschrieben werden:
foreach($array as $item)
{
$item = utf8_decode(urldecode($item));
$chunks = explode(":", $item);
if($chunks[0] == "time")
{
SetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, date('i:s', $chunks[1]));
SetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/, sprintf('%01.0f', $chunks[1]));
}
if($chunks[0] == "duration")
{
SetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, date('i:s', $chunks[1]));
SetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/, sprintf('%01.0f', $chunks[1]));
}
}
if(GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/) !== "00:00")
{
slider(34996 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(40778 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/), GetValue(30117 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/));
slider2(36846 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Position Neu]*/, 100/GetValue(12610 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\Länge]*/)*GetValue(37989 /*[Tools\Squeezebox\Auswertung Squeezeboxen\Musik Wohnzimmer\akt. Position]*/));
}
Seit dem tuckert IPS bei mir auch mit aktiviertem Squeeze-Skript friedlich vor sich hin und tut was es soll.
Grüsse.