Wiederherstellung von dropped Verbindung in redis pub / sub

Ich laufe den Client, der mit einem redis db verbunden ist. Der Client ist auf einer WiFi-Verbindung und wird die Verbindung zu Zeiten fallen lassen. Leider, wenn dies geschieht, läuft das Programm einfach ohne zu werfen jede Art von Warnung.

r = redis.StrictRedis(host=XX, password=YY...) ps = r.pubsub() ps.subscribe("12345") for items in ps.listen(): if items['type'] == 'message': data = items['data'] 

Im Idealfall, was ich suche ist ein Fang ein Ereignis, wenn die Verbindung verloren geht, versuchen und wiederherstellen die Verbindung, einige Fehler korrigieren, dann die Dinge wieder auf und läuft. Sollte dies im Python-Programm geschehen? Soll ich einen externen Watchdog haben?

  • Keras, Wie bekomme ich die Ausgabe jeder Schicht?
  • Python-Konkordanz-Befehl in NLTK
  • Django Modell Wahlfeld - abhängig von anderen Feld die Wahl
  • Sqlalchemy.exc.UnboundExecutionError: Konnte keine Bindung finden, die auf Mapper Mapper | SellsTable | Sellers oder dieser Session konfiguriert ist
  • Python: Wrapping Methodenaufrufe mit Pre- und Post-Methoden
  • AttributeError: 'Response' Objekt hat kein Attribut 'body_as_unicode' scrapy für python
  • Hat jemand ActionChains von Webdriver benutzt (Pythonbindung)?
  • Überschreitung anderer __rmul__ mit deiner Klasse __mul__
  • Maven Äquivalent für Python
  • Anordnen eines Satzes von Namen, so dass zwei Namen als eine Lösung gedruckt werden
  • HTTP-Anforderung und Response Inspektion mit Python
  • Python-Pandas: Konvertieren von Zeilen als Spaltenüberschriften
  • One Solution collect form web for “Wiederherstellung von dropped Verbindung in redis pub / sub”

    Leider muss man "Rede" testen, um zu überprüfen, ob es verfügbar ist. Wenn Sie versuchen, einen Wert auf Redis-Speicher zu setzen, wird es eine ConnectionError Ausnahme erheben, wenn die Verbindung verloren geht. Aber der listen () – Generator schließt sich nicht automatisch, wenn die Verbindung verloren geht.

    Ich denke, dass das Hacken von Redis 'Verbindungspool helfen könnte, probieren Sie es aus.

    PS In ist sehr unsicher, um mit redis in einer nicht vertrauenswürdigen Netzwerkumgebung zu verbinden.

    Python ist die beste Programmiersprache der Welt.