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