Ich bin auf der Suche nach einer Möglichkeit, ein Dataproc Job Kill-Signal in einem Python Funken Streaming-Job zu fangen: Ich habe einen bestimmten Job auf Dataproc, die mehrere Verbindungen zu einem PostgreSQL DB öffnet , die selbst eine begrenzte Anzahl von Verbindungen in ihrem Pool hat. Wenn der Job neu gestartet wird, werden die Verbindungen derzeit nicht ordnungsgemäß geschlossen und daher stehen der nächsten Instanz dieses Jobs nicht genügend Verbindungen zur Verfügung, um ordnungsgemäß zu funktionieren. Wenn ich irgendwie das Kill-Signal im Job abfangen könnte, könnte ich trotzdem sicherstellen, dass die Verbindungen geschlossen sind.Möglichkeit, ein Dataproc Kill-Signal auf einem Funken Streaming-Auftrag zu fangen
0
A
Antwort
2
Ich vermute, das Beste, was Sie tun können, ist eine atexit handler in Ihrem Python-Treiber zu registrieren; Ob der Aufruf erfolgreich ausgeführt wird, hängt von der Ursache des Neustarts oder Fehlers ab. Sie können also nur überprüfen, ob dies zu funktionieren scheint, indem Sie es zuerst mit dem beabsichtigten Neustart-Fall testen.
Andernfalls, wenn es eine Möglichkeit gibt, die verwaiste Verbindungen irgendwie auf andere Weise zu erzwingen, könnte es einfacher sein, beim Start nach ihnen zu suchen und alle notwendigen Bereinigungsaufrufe explizit auszuführen.