fix 目录监控消息重复发送

This commit is contained in:
jxxghp
2024-12-30 18:57:45 +08:00
parent 873f80d534
commit dfbe8a2c0e
+6
View File
@@ -34,6 +34,7 @@ from app.utils.string import StringUtils
downloader_lock = threading.Lock() downloader_lock = threading.Lock()
job_lock = threading.Lock() job_lock = threading.Lock()
task_lock = threading.Lock()
class JobManager: class JobManager:
@@ -460,6 +461,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
# 整理完成且有成功的任务时 # 整理完成且有成功的任务时
if self.jobview.is_finished(task): if self.jobview.is_finished(task):
with task_lock:
# 发送通知 # 发送通知
if transferinfo.need_notify: if transferinfo.need_notify:
se_str = None se_str = None
@@ -486,6 +488,9 @@ class TransferChain(ChainBase, metaclass=Singleton):
'fileitem': transferinfo.target_diritem 'fileitem': transferinfo.target_diritem
}) })
# 移除已完成的任务
self.jobview.remove_job(task)
return True, "" return True, ""
def put_to_queue(self, task: TransferTask, callback: Optional[Callable] = None): def put_to_queue(self, task: TransferTask, callback: Optional[Callable] = None):
@@ -497,6 +502,7 @@ class TransferChain(ChainBase, metaclass=Singleton):
if not task: if not task:
return return
# 维护整理任务视图 # 维护整理任务视图
with task_lock:
self.jobview.add_task(task) self.jobview.add_task(task)
# 添加到队列 # 添加到队列
self._queue.put(TransferQueue( self._queue.put(TransferQueue(