mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-08 17:08:35 +08:00
fix deadlock
This commit is contained in:
+1
-16
@@ -221,9 +221,8 @@ class JobManager:
|
||||
"""
|
||||
移除作业
|
||||
"""
|
||||
__mediaid__ = self.__get_media_id(media=task.mediainfo, season=task.meta.begin_season)
|
||||
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._season_episodes:
|
||||
@@ -320,7 +319,6 @@ class JobManager:
|
||||
获取某项任务成功的任务
|
||||
"""
|
||||
__mediaid__ = self.__get_media_id(media=media, season=season)
|
||||
with job_lock:
|
||||
if __mediaid__ not in self._job_view:
|
||||
return []
|
||||
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)
|
||||
with job_lock:
|
||||
if __mediaid__ not in self._job_view:
|
||||
return []
|
||||
return self._job_view[__mediaid__].tasks
|
||||
@@ -340,8 +337,6 @@ class JobManager:
|
||||
获取某项任务成功总数
|
||||
"""
|
||||
__mediaid__ = self.__get_media_id(media=media, season=season)
|
||||
with job_lock:
|
||||
# 计算状态为完成的任务数
|
||||
if __mediaid__ not in self._job_view:
|
||||
return 0
|
||||
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)
|
||||
with job_lock:
|
||||
# 计算状态为完成的任务数
|
||||
if __mediaid__ not in self._job_view:
|
||||
return 0
|
||||
return sum([
|
||||
@@ -367,7 +360,6 @@ class JobManager:
|
||||
"""
|
||||
获取所有task任务总数
|
||||
"""
|
||||
with job_lock:
|
||||
return sum([len(job.tasks) for job in self._job_view.values()])
|
||||
|
||||
def list_jobs(self) -> List[TransferJob]:
|
||||
@@ -381,7 +373,6 @@ class JobManager:
|
||||
获取季集清单
|
||||
"""
|
||||
__mediaid__ = self.__get_media_id(media=media, season=season)
|
||||
with job_lock:
|
||||
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)
|
||||
|
||||
transferhis = TransferHistoryOper()
|
||||
@@ -568,7 +558,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
|
||||
))
|
||||
|
||||
# 整理失败
|
||||
with job_lock:
|
||||
self.jobview.fail_task(task)
|
||||
|
||||
# 全部整理完成且有成功的任务时
|
||||
@@ -579,7 +568,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
|
||||
return False, transferinfo.message
|
||||
|
||||
# task转移成功
|
||||
with job_lock:
|
||||
self.jobview.finish_task(task)
|
||||
|
||||
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)
|
||||
|
||||
def remove_from_queue(self, fileitem: FileItem):
|
||||
@@ -675,7 +662,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
|
||||
"""
|
||||
if not fileitem:
|
||||
return
|
||||
with job_lock:
|
||||
self.jobview.remove_task(fileitem)
|
||||
|
||||
def __start_transfer(self):
|
||||
@@ -919,7 +905,6 @@ class TransferChain(ChainBase, ConfigReloadMixin, metaclass=Singleton):
|
||||
|
||||
finally:
|
||||
# 移除已完成的任务
|
||||
with job_lock:
|
||||
if self.jobview.is_done(task):
|
||||
self.jobview.remove_job(task)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user