Keep the ntfy process in stop_wait state even when the plugin is configured with no subscriptions

This commit is contained in:
Fabio Manganiello 2022-06-09 11:59:29 +02:00
parent 1da17fca35
commit 8d26c8634d

View file

@ -53,16 +53,13 @@ class NtfyPlugin(RunnablePlugin):
self._ws_proc = None self._ws_proc = None
def _connect(self): def _connect(self):
if self.should_stop(): if self.should_stop() or (self._ws_proc and self._ws_proc.is_alive()):
self.logger.debug('Already connected') self.logger.debug('Already connected')
return return
self._ws_proc = multiprocessing.Process(target=self._ws_process) self._ws_proc = multiprocessing.Process(target=self._ws_process)
self._ws_proc.start() self._ws_proc.start()
while not self._should_stop.is_set():
self._should_stop.wait(timeout=1)
async def _get_ws_handler(self, url): async def _get_ws_handler(self, url):
reconnect_wait_secs = 1 reconnect_wait_secs = 1
reconnect_wait_secs_max = 60 reconnect_wait_secs_max = 60
@ -125,6 +122,9 @@ class NtfyPlugin(RunnablePlugin):
if self._subscriptions: if self._subscriptions:
self._connect() self._connect()
while not self._should_stop.is_set():
self._should_stop.wait(timeout=1)
def stop(self): def stop(self):
if self._ws_proc: if self._ws_proc:
self._ws_proc.kill() self._ws_proc.kill()