feat(workflow): exec_workflow 增加重试/心跳三列与可恢复查询 DAO
This commit is contained in:
+32
@@ -887,3 +887,35 @@ COMMENT ON COLUMN black_deacon_flow_segment_result.segment_index IS '段序号';
|
||||
COMMENT ON COLUMN black_deacon_flow_segment_result.video_key IS '视频输出字段key';
|
||||
COMMENT ON COLUMN black_deacon_flow_segment_result.video_url IS '已生成成功的视频地址';
|
||||
--------------------pgsql创建black_deacon_flow_segment_result表语句---------------------------
|
||||
|
||||
--------------------工作流重试兜底:exec_workflow 新增重试/心跳列---------------------
|
||||
ALTER TABLE black_deacon_exec_workflow ADD COLUMN IF NOT EXISTS retryable SMALLINT NOT NULL DEFAULT 0; -- 1=程序报错可重试,0=用户取消
|
||||
ALTER TABLE black_deacon_exec_workflow ADD COLUMN IF NOT EXISTS retry_count INTEGER NOT NULL DEFAULT 0; -- 已重试次数
|
||||
ALTER TABLE black_deacon_exec_workflow ADD COLUMN IF NOT EXISTS last_heartbeat BIGINT NOT NULL DEFAULT 0; -- 最后心跳(毫秒时间戳)
|
||||
COMMENT ON COLUMN black_deacon_exec_workflow.retryable IS '是否可重试:0-用户取消,1-程序报错';
|
||||
COMMENT ON COLUMN black_deacon_exec_workflow.retry_count IS '已重试次数';
|
||||
COMMENT ON COLUMN black_deacon_exec_workflow.last_heartbeat IS '最后心跳时间(毫秒时间戳)';
|
||||
|
||||
--------------------工作流重试兜底:flow_async_task 统一异步任务表(Task 2 使用)---------------------
|
||||
CREATE TABLE IF NOT EXISTS black_deacon_flow_async_task (
|
||||
-- 基础字段(完全对齐项目规范)
|
||||
id BIGINT PRIMARY KEY,
|
||||
tenant_id BIGINT NOT NULL DEFAULT 0,
|
||||
creator VARCHAR(64) NOT NULL,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updater VARCHAR(64) NOT NULL,
|
||||
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
deleted_at timestamp(6),
|
||||
-- 业务字段
|
||||
execution_id BIGINT NOT NULL DEFAULT 0, -- 所属执行ID
|
||||
node_id VARCHAR(64) NOT NULL DEFAULT '', -- 所属节点ID
|
||||
segment_index INT NOT NULL DEFAULT -1, -- 段序号;非段调用为-1(哨兵,不用NULL)
|
||||
model_id BIGINT NOT NULL DEFAULT 0, -- 模型ID
|
||||
task_id BIGINT NOT NULL DEFAULT 0, -- model-gateway任务ID
|
||||
msg_topic VARCHAR(255) NOT NULL DEFAULT '', -- 结果消息主题(恢复重订阅拿回结果)
|
||||
state SMALLINT NOT NULL DEFAULT 0, -- 0=in-flight,1=done,2=failed
|
||||
result JSONB DEFAULT '{}' -- 成功结果JSON(ModelCallRes)
|
||||
);
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS uk_async_task_exec_node_seg ON black_deacon_flow_async_task(execution_id, node_id, segment_index);
|
||||
CREATE INDEX IF NOT EXISTS idx_async_task_tenant_id ON black_deacon_flow_async_task(tenant_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_async_task_deleted_at ON black_deacon_flow_async_task(deleted_at);
|
||||
|
||||
Reference in New Issue
Block a user