fix 完善事件和消息发送

This commit is contained in:
jxxghp
2025-03-01 18:34:39 +08:00
parent ed8895dfbb
commit 8bd6ccb0de
16 changed files with 95 additions and 57 deletions
+8 -14
View File
@@ -1,9 +1,7 @@
import copy
from app.actions import BaseAction
from app.core.config import global_vars
from app.schemas import ActionParams, ActionContext
from app.core.event import eventmanager
from app.schemas import ActionParams, ActionContext
from app.schemas.types import ChainEventType
class SendEventParams(ActionParams):
@@ -26,7 +24,7 @@ class SendEventAction(BaseAction):
@classmethod
@property
def description(cls) -> str:
return "发送队列中的所有事件"
return "发送任务执行事件"
@classmethod
@property
@@ -39,16 +37,12 @@ class SendEventAction(BaseAction):
def execute(self, workflow_id: int, params: dict, context: ActionContext) -> ActionContext:
"""
发送events中的事件
发送工作流事件,以更插件干预工作流执行
"""
if context.events:
# 按优先级排序,优先级高的先发送
context.events.sort(key=lambda x: x.priority, reverse=True)
for event in copy.deepcopy(context.events):
if global_vars.is_workflow_stopped(workflow_id):
break
eventmanager.send_event(etype=event.event_type, data=event.event_data)
context.events.remove(event)
# 触发资源下载事件,更新执行上下文
event = eventmanager.send_event(ChainEventType.WorkflowExecution, context)
if event and event.event_data:
context = event.event_data
self.job_done()
return context