ich kaempfe jetzt schon eine ganze Weile mit einem Problem - vielleicht kann mir einer von Euch dabei weiterhelfen:
Ich lasse ein Python Skript in einer Windows Shell laufen und moechte mitbekommen, wenn der User die Shell schliesst, um dann noch einiges an Cleanup auszufuehren (Datenbank-Connection schliessen, ...)
Wenn Der User Ctrl-C drueckt, klappt das alles wunderbar, aber wenn er einfach die Shell schliesst, indem der auf das Close-Icon clickt, beginnen meine Probleme.
Kurz mein prinzipieller Ansatz bis jetzt: ich hole mir ein Objekt meiner Klasse und rufe dann meine HauptMethode:
Code: Alles auswählen
myObject = MyClass()
myObject.mainLoopForever()
in mainLoopForever() werden alle paar Sekunden Daten mit der Datenbank abgeglichen.
Folgendes habe ich bereits ausprobiert: (klappt alles bei "Ctrl-C" und versagt alles beim Schliessen der Shell)
- __del__ implementieren und dort meinen Cleanup ausfuehren
- einen TRY FINALLY block in mainLoopForever() einbauen und dort meinen Cleanup ausfuehren
- __enter__ und __exit__ implementieren und mein Objekt mit dem WITH statement bauen
Bin dankbar fuer jede Hilfe und jedes Feedback...
Vielen Dank im voraus,
Martin