catch SIGTERM, and respond more quickly

This commit is contained in:
Damien Elmes 2020-07-18 11:26:04 +10:00
parent 7d8818f855
commit f22aa4c199

View file

@ -799,9 +799,10 @@ title="%s" %s>%s</button>""" % (
########################################################################## ##########################################################################
def setupSignals(self) -> None: def setupSignals(self) -> None:
signal.signal(signal.SIGINT, self.onSigInt) signal.signal(signal.SIGINT, self.onUnixSignal)
signal.signal(signal.SIGTERM, self.onUnixSignal)
def onSigInt(self, signum, frame): def onUnixSignal(self, signum, frame):
# schedule a rollback & quit # schedule a rollback & quit
def quit(): def quit():
self.col.db.rollback() self.col.db.rollback()
@ -1227,6 +1228,9 @@ Difference to correct time: %s."""
self.progress.timer(10 * 60 * 1000, self.onRefreshTimer, True) self.progress.timer(10 * 60 * 1000, self.onRefreshTimer, True)
# check media sync every 5 minutes # check media sync every 5 minutes
self.progress.timer(5 * 60 * 1000, self.on_autosync_timer, True) self.progress.timer(5 * 60 * 1000, self.on_autosync_timer, True)
# ensure Python interpreter runs at least once per second, so that
# SIGINT/SIGTERM is processed without a long delay
self.progress.timer(1000, lambda: None, True, False)
def onRefreshTimer(self): def onRefreshTimer(self):
if self.state == "deckBrowser": if self.state == "deckBrowser":