diff --git a/worker.py b/worker.py index 6c1fe14..0ab81f2 100644 --- a/worker.py +++ b/worker.py @@ -30,6 +30,9 @@ class EventListener(Thread): except ValueError: pass # todo + def stop(self): + self.pubsub.close() + def handle_message(self, channel: str, data: bytes): data_dict = json.loads(data.decode()) if channel == 'move': @@ -45,7 +48,6 @@ camera = Camera() walle = WallE() walle.setup() - def walle_tick(): scheduler.enter(INTERVAL_TICK, 1, walle_tick) walle.tick() @@ -64,4 +66,8 @@ if __name__ == '__main__': redisdb = Redis() event_listener = EventListener() event_listener.start() - scheduler.run() + try: + scheduler.run() + except KeyboardInterrupt: + event_listener.stop() + raise