mirror of
https://github.com/KenanZhu/AutoLibrary.git
synced 2026-08-01 21:59:36 +08:00
fix(timer,bulletin): 修复定时任务与公告栏 5 项交叉审查问题
This commit is contained in:
@@ -112,8 +112,8 @@ class ALBulletinPoller(QObject):
|
||||
if self.__worker is None:
|
||||
return
|
||||
self.__disconnectWorker(self.__worker)
|
||||
self.__worker.wait(2000)
|
||||
self.__worker.deleteLater()
|
||||
self.__worker.wait(500)
|
||||
self.__worker.delete()
|
||||
self.__worker = None
|
||||
|
||||
def __doFetch(
|
||||
@@ -149,8 +149,8 @@ class ALBulletinPoller(QObject):
|
||||
if worker is not self.__worker:
|
||||
return
|
||||
self.__disconnectWorker(worker)
|
||||
worker.wait(2000)
|
||||
worker.deleteLater()
|
||||
worker.wait(500)
|
||||
worker.delete()
|
||||
self.__worker = None
|
||||
old_ids = {str(b.get("id", "")) for b in self.__mgr.bulletins()}
|
||||
bulletins = data.get("bulletins", [])
|
||||
@@ -180,8 +180,8 @@ class ALBulletinPoller(QObject):
|
||||
if worker is not self.__worker:
|
||||
return
|
||||
self.__disconnectWorker(worker)
|
||||
worker.wait(2000)
|
||||
worker.deleteLater()
|
||||
worker.wait(500)
|
||||
worker.delete()
|
||||
self.__worker = None
|
||||
if not self.__stopped:
|
||||
interval_ms = self.__mgr.syncInterval()*60*1000
|
||||
|
||||
+10
-1
@@ -151,6 +151,9 @@ class ALMainWindow(MsgBase, QMainWindow, Ui_ALMainWindow):
|
||||
):
|
||||
|
||||
self.hide()
|
||||
self.__notification_type = ""
|
||||
if not hasattr(self, "TrayIcon"):
|
||||
return
|
||||
self.TrayIcon.showMessage(
|
||||
"AutoLibrary",
|
||||
"\n已最小化到托盘",
|
||||
@@ -279,6 +282,9 @@ class ALMainWindow(MsgBase, QMainWindow, Ui_ALMainWindow):
|
||||
):
|
||||
|
||||
self.setControlButtons(None, True, False)
|
||||
self.__notification_type = ""
|
||||
if not hasattr(self, "TrayIcon"):
|
||||
return
|
||||
if not timer_task.get("silent", False):
|
||||
self.TrayIcon.showMessage(
|
||||
"定时任务 - AutoLibrary",
|
||||
@@ -296,6 +302,9 @@ class ALMainWindow(MsgBase, QMainWindow, Ui_ALMainWindow):
|
||||
):
|
||||
|
||||
self.setControlButtons(None, False, True)
|
||||
self.__notification_type = ""
|
||||
if not hasattr(self, "TrayIcon"):
|
||||
return
|
||||
self.TrayIcon.showMessage(
|
||||
"定时任务 - AutoLibrary",
|
||||
f"\n定时任务 '{timer_task['name']}' 执行{'失败' if is_error else '完成'}",
|
||||
@@ -363,10 +372,10 @@ class ALMainWindow(MsgBase, QMainWindow, Ui_ALMainWindow):
|
||||
self
|
||||
):
|
||||
|
||||
self.__bulletin_poller.setDialogOpen(True)
|
||||
if self.__ALBulletinDialog is None:
|
||||
self.__ALBulletinDialog = ALBulletinDialog(self)
|
||||
self.__ALBulletinDialog.finished.connect(self.onBulletinDialogClosed)
|
||||
self.__bulletin_poller.setDialogOpen(True)
|
||||
self.__ALBulletinDialog.show()
|
||||
self.__ALBulletinDialog.raise_()
|
||||
self.__ALBulletinDialog.activateWindow()
|
||||
|
||||
@@ -88,8 +88,11 @@ class ALTimerTaskPoller(QObject):
|
||||
return
|
||||
try:
|
||||
task = self.__task_queue.get_nowait()
|
||||
self.__timer.stop()
|
||||
self.taskRunning.emit(task)
|
||||
except queue.Empty:
|
||||
return
|
||||
self.__timer.stop()
|
||||
self.taskRunning.emit(task)
|
||||
try:
|
||||
self.__worker = TimerTaskWorker(
|
||||
task,
|
||||
self.__input_queue,
|
||||
@@ -98,8 +101,10 @@ class ALTimerTaskPoller(QObject):
|
||||
)
|
||||
self.__worker.timerTaskWorkerIsFinished.connect(self.__onFinished)
|
||||
self.__worker.start()
|
||||
except queue.Empty:
|
||||
pass
|
||||
except Exception:
|
||||
self.__worker = None
|
||||
if not self.__stopped:
|
||||
self.__timer.start(500)
|
||||
|
||||
@Slot(bool, dict)
|
||||
def __onFinished(
|
||||
@@ -112,14 +117,15 @@ class ALTimerTaskPoller(QObject):
|
||||
self.__worker.wait(1000)
|
||||
self.__worker.deleteLater()
|
||||
self.__worker = None
|
||||
task["executed"] = True
|
||||
self.taskFinished.emit(is_error, task)
|
||||
if not is_error:
|
||||
self.taskExecuted.emit(task)
|
||||
else:
|
||||
self.taskError.emit(task)
|
||||
if not self.__stopped:
|
||||
self.__timer.start(500)
|
||||
try:
|
||||
self.taskFinished.emit(is_error, task)
|
||||
if not is_error:
|
||||
self.taskExecuted.emit(task)
|
||||
else:
|
||||
self.taskError.emit(task)
|
||||
finally:
|
||||
if not self.__stopped:
|
||||
self.__timer.start(500)
|
||||
|
||||
def __cleanupWorker(
|
||||
self
|
||||
@@ -131,6 +137,6 @@ class ALTimerTaskPoller(QObject):
|
||||
self.__worker.timerTaskWorkerIsFinished.disconnect(self.__onFinished)
|
||||
except (TypeError, RuntimeError):
|
||||
pass
|
||||
self.__worker.wait(2000)
|
||||
self.__worker.deleteLater()
|
||||
self.__worker.wait(500)
|
||||
self.__worker.delete()
|
||||
self.__worker = None
|
||||
|
||||
Reference in New Issue
Block a user