mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-07 08:26:53 +08:00
fix dead lock
This commit is contained in:
@@ -217,7 +217,6 @@ def pause_workflow(workflow_id: int,
|
|||||||
"""
|
"""
|
||||||
停用工作流
|
停用工作流
|
||||||
"""
|
"""
|
||||||
from app.db.workflow_oper import WorkflowOper
|
|
||||||
workflow = WorkflowOper(db).get(workflow_id)
|
workflow = WorkflowOper(db).get(workflow_id)
|
||||||
if not workflow:
|
if not workflow:
|
||||||
return schemas.Response(success=False, message="工作流不存在")
|
return schemas.Response(success=False, message="工作流不存在")
|
||||||
|
|||||||
+9
-10
@@ -133,14 +133,13 @@ class WorkFlowManager(metaclass=Singleton):
|
|||||||
else:
|
else:
|
||||||
workflows = WorkflowOper().get_event_triggered_workflows()
|
workflows = WorkflowOper().get_event_triggered_workflows()
|
||||||
try:
|
try:
|
||||||
with self._lock:
|
for workflow in workflows:
|
||||||
for workflow in workflows:
|
# 确保先移除旧的事件监听器
|
||||||
# 确保先移除旧的事件监听器
|
self.remove_workflow_event(workflow_id=workflow.id, event_type_str=workflow.event_type)
|
||||||
self.remove_workflow_event(workflow_id=workflow.id, event_type_str=workflow.event_type)
|
# 如果工作流是事件触发类型且未被禁用
|
||||||
# 如果工作流是事件触发类型且未被禁用
|
if workflow.trigger_type == "event" and workflow.state != 'P':
|
||||||
if workflow.trigger_type == "event" and workflow.state != 'P':
|
# 注册事件触发器
|
||||||
# 注册事件触发器
|
self.register_workflow_event(workflow.id, workflow.event_type)
|
||||||
self.register_workflow_event(workflow.id, workflow.event_type)
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"加载事件触发工作流失败: {e}")
|
logger.error(f"加载事件触发工作流失败: {e}")
|
||||||
|
|
||||||
@@ -154,9 +153,9 @@ class WorkFlowManager(metaclass=Singleton):
|
|||||||
logger.error(f"无效的事件类型: {event_type_str}")
|
logger.error(f"无效的事件类型: {event_type_str}")
|
||||||
return
|
return
|
||||||
if event_type in EventType:
|
if event_type in EventType:
|
||||||
|
# 确保先移除旧的事件监听器
|
||||||
|
self.remove_workflow_event(workflow_id, event_type.value)
|
||||||
with self._lock:
|
with self._lock:
|
||||||
# 确保先移除旧的事件监听器
|
|
||||||
self.remove_workflow_event(workflow_id, event_type.value)
|
|
||||||
# 添加新的事件监听器
|
# 添加新的事件监听器
|
||||||
eventmanager.add_event_listener(event_type, self._handle_event)
|
eventmanager.add_event_listener(event_type, self._handle_event)
|
||||||
# 记录工作流事件触发器
|
# 记录工作流事件触发器
|
||||||
|
|||||||
Reference in New Issue
Block a user