Ich soll für einen Bekannten ein Script schreiben welches Daten von einer Streamingplattform holt und dort überprüft ob ein Stream online ist oder nicht.
Die API (von Twitch) ist recht simpel und ausreichend dafür, jedoch hab ich ein paar große Performanceprobleme und weiß nicht wie ich das Problem richtig angehe.
Zuerst hole ich mir den Streamernamen aus einer Datenbank, jetzt wirds schon "kniffelig".
Ich bekomme pro Stream folgenden Datensatz geliefert:
Channelname | Status
Status ist ein Wert von 0-2. 0 Steht für Auto, 1 für Online und 2 für Offline.
Jeder Channel der auf 0 steht muss überprüft werden ob er online oder offline ist.
Jeder Channel der auf 1 steht muss überprüft werden ob er online ist, wenn er offline ist, dann soll der Status auf 0 gesetzt werden.
Sinn der Sache dahinter ist, dass der User bestimmen kann ob sein Stream jedesmal angezeigt wird, wenn er seinen Stream online setzt, dafür der Modus 1 und 2. Leider wird nicht jeder User daran denken und seinen Stream auch wieder offline setzen wenn er offline geht. Wenn er auf 0 (Auto) steht, dann wird er immer angezeigt, wenn er online ist.
Folgendes ist bereits vorhanden:
Grundsätzlich ist das kein Problem, die Streams die den Status 1 haben zu überprüfen ob online oder nicht, wenn ich aber in der while-Schleife jeden Stream abgrase, dann befürchte ich, dass die Performance stark drunter leidet.
Ich weiß leider nicht ob die Frage jetzt zu speziell ist oder ob sich jemand mit dem Problem vllt auch schon befasst hat, ansonsten bleibt mir nur das Twitch-Forum.
Die API (von Twitch) ist recht simpel und ausreichend dafür, jedoch hab ich ein paar große Performanceprobleme und weiß nicht wie ich das Problem richtig angehe.
Zuerst hole ich mir den Streamernamen aus einer Datenbank, jetzt wirds schon "kniffelig".
Ich bekomme pro Stream folgenden Datensatz geliefert:
Channelname | Status
Status ist ein Wert von 0-2. 0 Steht für Auto, 1 für Online und 2 für Offline.
Jeder Channel der auf 0 steht muss überprüft werden ob er online oder offline ist.
Jeder Channel der auf 1 steht muss überprüft werden ob er online ist, wenn er offline ist, dann soll der Status auf 0 gesetzt werden.
Sinn der Sache dahinter ist, dass der User bestimmen kann ob sein Stream jedesmal angezeigt wird, wenn er seinen Stream online setzt, dafür der Modus 1 und 2. Leider wird nicht jeder User daran denken und seinen Stream auch wieder offline setzen wenn er offline geht. Wenn er auf 0 (Auto) steht, dann wird er immer angezeigt, wenn er online ist.
Folgendes ist bereits vorhanden:
PHP:
// [...]
$qry = mysql_query("SELECT * FROM streams WHERE status = 1 OR status = 0");
while($row = mysql_fetch_array($qry)) {
// Hier müsste ich jetzt für jeden Stream noch prüfen ob er online oder offline ist und dann ein UPDATE auf den status machen
$streams[] = $row['channel']
}
$response = 'http://api.justin.tv/api/stream/list.json?channel='.implode(',', $streams']);
$json_file = @file_get_contents($response, 0, null, null);
Grundsätzlich ist das kein Problem, die Streams die den Status 1 haben zu überprüfen ob online oder nicht, wenn ich aber in der while-Schleife jeden Stream abgrase, dann befürchte ich, dass die Performance stark drunter leidet.
Ich weiß leider nicht ob die Frage jetzt zu speziell ist oder ob sich jemand mit dem Problem vllt auch schon befasst hat, ansonsten bleibt mir nur das Twitch-Forum.