improve manual reconnecting
This commit is contained in:
@@ -183,23 +183,31 @@ class GotifyClient(GotifySession):
|
|||||||
self.listener.start()
|
self.listener.start()
|
||||||
|
|
||||||
def opened_callback(self, user_callback: Callable[[], None] = None):
|
def opened_callback(self, user_callback: Callable[[], None] = None):
|
||||||
self.listener.reset_wait_time()
|
|
||||||
if user_callback:
|
if user_callback:
|
||||||
user_callback()
|
user_callback()
|
||||||
|
|
||||||
def reconnect(self, increase_wait_time: bool = True):
|
def reconnect(self):
|
||||||
if increase_wait_time:
|
if not self.is_listening():
|
||||||
self.listener.increase_wait_time()
|
self.listener.start()
|
||||||
self.listener.start()
|
self.reset_wait_time()
|
||||||
|
|
||||||
def stop(self, reset_wait: bool = False):
|
def stop(self, reset_wait: bool = False):
|
||||||
if reset_wait:
|
if reset_wait:
|
||||||
self.listener.reset_wait_time()
|
self.reset_wait_time()
|
||||||
self.listener.stop()
|
self.listener.stop()
|
||||||
|
|
||||||
def is_listening(self) -> bool:
|
def is_listening(self) -> bool:
|
||||||
return self.listener.running
|
return self.listener.running
|
||||||
|
|
||||||
|
def increase_wait_time(self):
|
||||||
|
self.listener.increase_wait_time()
|
||||||
|
|
||||||
|
def get_wait_time(self) -> int:
|
||||||
|
return self.listener.wait_time
|
||||||
|
|
||||||
|
def reset_wait_time(self):
|
||||||
|
self.listener.reset_wait_time()
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Health
|
Health
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -68,10 +68,7 @@ class Listener(QtCore.QThread):
|
|||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
self.running = True
|
self.running = True
|
||||||
logger.debug(f"Listener: waiting {self.wait_time} seconds before connecting.")
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
time.sleep(self.wait_time)
|
|
||||||
self.ws.run_forever()
|
self.ws.run_forever()
|
||||||
finally:
|
finally:
|
||||||
logger.debug("Listener: stopped.")
|
logger.debug("Listener: stopped.")
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ from gotify_tray.tasks import (
|
|||||||
GetApplicationMessagesTask,
|
GetApplicationMessagesTask,
|
||||||
GetMessagesTask,
|
GetMessagesTask,
|
||||||
ServerConnectionWatchdogTask,
|
ServerConnectionWatchdogTask,
|
||||||
|
SleepTask,
|
||||||
)
|
)
|
||||||
from gotify_tray.utils import get_abs_path, verify_server
|
from gotify_tray.utils import get_abs_path, verify_server
|
||||||
from PyQt6 import QtCore, QtGui, QtWidgets
|
from PyQt6 import QtCore, QtGui, QtWidgets
|
||||||
@@ -53,7 +54,7 @@ def init_logger(logger: logging.Logger):
|
|||||||
os.mkdir(logdir)
|
os.mkdir(logdir)
|
||||||
logging.basicConfig(
|
logging.basicConfig(
|
||||||
filename=os.path.join(logdir, f"{title}.log"),
|
filename=os.path.join(logdir, f"{title}.log"),
|
||||||
format="%(levelname)s > %(name)s > %(asctime)s > %(message)s",
|
format="%(levelname)s > %(name)s > %(asctime)s > %(filename)20s:%(lineno)3s - %(funcName)20s() > %(message)s",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -131,14 +132,17 @@ class MainApplication(QtWidgets.QApplication):
|
|||||||
self.main_window.set_connecting()
|
self.main_window.set_connecting()
|
||||||
self.tray.set_icon_error()
|
self.tray.set_icon_error()
|
||||||
if not self.shutting_down:
|
if not self.shutting_down:
|
||||||
self.gotify_client.reconnect()
|
self.gotify_client.increase_wait_time()
|
||||||
|
self.sleep_task = SleepTask(self.gotify_client.get_wait_time())
|
||||||
|
self.sleep_task.finished.connect(self.gotify_client.reconnect)
|
||||||
|
self.sleep_task.start()
|
||||||
|
|
||||||
def reconnect_callback(self):
|
def reconnect_callback(self):
|
||||||
if not self.gotify_client.is_listening():
|
if not self.gotify_client.is_listening():
|
||||||
self.gotify_client.listener.reset_wait_time()
|
self.gotify_client.listener.reset_wait_time()
|
||||||
|
self.gotify_client.reconnect()
|
||||||
else:
|
else:
|
||||||
self.gotify_client.stop(reset_wait=True)
|
self.gotify_client.stop(reset_wait=True)
|
||||||
self.gotify_client.reconnect(increase_wait_time=False)
|
|
||||||
|
|
||||||
def insert_message(
|
def insert_message(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -175,3 +175,12 @@ class ServerConnectionWatchdogTask(BaseTask):
|
|||||||
logger.debug(
|
logger.debug(
|
||||||
"ServerConnectionWatchdogTask: gotify_client is not listening"
|
"ServerConnectionWatchdogTask: gotify_client is not listening"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class SleepTask(BaseTask):
|
||||||
|
def __init__(self, secs: int):
|
||||||
|
super(SleepTask, self).__init__()
|
||||||
|
self.secs = secs
|
||||||
|
|
||||||
|
def task(self):
|
||||||
|
time.sleep(self.secs)
|
||||||
|
|||||||
Reference in New Issue
Block a user