fix deadlock

This commit is contained in:
jxxghp
2026-01-21 22:46:04 +08:00
parent 46466624ae
commit abbd2253ad
+1 -16
View File
@@ -221,9 +221,8 @@ class JobManager:
""" """
移除作业 移除作业
""" """
__mediaid__ = self.__get_media_id(media=task.mediainfo, season=task.meta.begin_season)
with job_lock: with job_lock:
# 移除作业 __mediaid__ = self.__get_media_id(media=task.mediainfo, season=task.meta.begin_season)
if __mediaid__ in self._job_view: if __mediaid__ in self._job_view:
# 移除季集信息 # 移除季集信息
if __mediaid__ in self._season_episodes: if __mediaid__ in self._season_episodes:
@@ -320,7 +319,6 @@ class JobManager:
获取某项任务成功的任务 获取某项任务成功的任务
""" """
__mediaid__ = self.__get_media_id(media=media, season=season) __mediaid__ = self.__get_media_id(media=media, season=season)
with job_lock:
if __mediaid__ not in self._job_view: if __mediaid__ not in self._job_view:
return [] return []
return [task for task in self._job_view[__mediaid__].tasks if task.state == "completed"] return [task for task in self._job_view[__mediaid__].tasks if task.state == "completed"]
@@ -330,7 +328,6 @@ class JobManager:
获取全部任务 获取全部任务
""" """
__mediaid__ = self.__get_media_id(media=media, season=season) __mediaid__ = self.__get_media_id(media=media, season=season)
with job_lock:
if __mediaid__ not in self._job_view: if __mediaid__ not in self._job_view:
return [] return []
return self._job_view[__mediaid__].tasks return self._job_view[__mediaid__].tasks
@@ -340,8 +337,6 @@ class JobManager:
获取某项任务成功总数 获取某项任务成功总数
""" """
__mediaid__ = self.__get_media_id(media=media, season=season) __mediaid__ = self.__get_media_id(media=media, season=season)
with job_lock:
# 计算状态为完成的任务数
if __mediaid__ not in self._job_view: if __mediaid__ not in self._job_view:
return 0 return 0
return len([task for task in self._job_view[__mediaid__].tasks if task.state == "completed"]) return len([task for task in self._job_view[__mediaid__].tasks if task.state == "completed"])
@@ -351,8 +346,6 @@ class JobManager:
获取某项任务成功文件总大小 获取某项任务成功文件总大小
""" """
__mediaid__ = self.__get_media_id(media=media, season=season) __mediaid__ = self.__get_media_id(media=media, season=season)
with job_lock:
# 计算状态为完成的任务数
if __mediaid__ not in self._job_view: if __mediaid__ not in self._job_view:
return 0 return 0
return sum([ return sum([
@@ -367,7 +360,6 @@ class JobManager:
""" """
获取所有task任务总数 获取所有task任务总数
""" """
with job_lock:
return sum([len(job.tasks) for job in self._job_view.values()]) return sum([len(job.tasks) for job in self._job_view.values()])
def list_jobs(self) -> List[TransferJob]: def list_jobs(self) -> List[TransferJob]:
@@ -381,7 +373,6 @@ class JobManager:
获取季集清单 获取季集清单
""" """
__mediaid__ = self.__get_media_id(media=media, season=season) __mediaid__ = self.__get_media_id(media=media, season=season)
with job_lock:
return self._season_episodes.get(__mediaid__) or [] return self._season_episodes.get(__mediaid__) or []
@@ -527,7 +518,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
}) })
# 移除已完成的任务 # 移除已完成的任务
with job_lock:
self.jobview.remove_job(task) self.jobview.remove_job(task)
transferhis = TransferHistoryOper() transferhis = TransferHistoryOper()
@@ -568,7 +558,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
)) ))
# 整理失败 # 整理失败
with job_lock:
self.jobview.fail_task(task) self.jobview.fail_task(task)
# 全部整理完成且有成功的任务时 # 全部整理完成且有成功的任务时
@@ -579,7 +568,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
return False, transferinfo.message return False, transferinfo.message
# task转移成功 # task转移成功
with job_lock:
self.jobview.finish_task(task) self.jobview.finish_task(task)
logger.info(f"{task.fileitem.name} 入库成功:{transferinfo.target_diritem.path}") logger.info(f"{task.fileitem.name} 入库成功:{transferinfo.target_diritem.path}")
@@ -666,7 +654,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
""" """
添加到作业视图 添加到作业视图
""" """
with job_lock:
self.jobview.add_task(task) self.jobview.add_task(task)
def remove_from_queue(self, fileitem: FileItem): def remove_from_queue(self, fileitem: FileItem):
@@ -675,7 +662,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
""" """
if not fileitem: if not fileitem:
return return
with job_lock:
self.jobview.remove_task(fileitem) self.jobview.remove_task(fileitem)
def __start_transfer(self): def __start_transfer(self):
@@ -919,7 +905,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
finally: finally:
# 移除已完成的任务 # 移除已完成的任务
with job_lock:
if self.jobview.is_done(task): if self.jobview.is_done(task):
self.jobview.remove_job(task) self.jobview.remove_job(task)