feat: 2.6.0

1. 工作流执行pg、mariadb数据库
This commit is contained in:
byteblogs168 2024-01-29 17:16:22 +08:00
parent 8441ccd476
commit 341f643765
11 changed files with 427 additions and 48 deletions

View File

@ -378,7 +378,7 @@ CREATE TABLE `job_task_batch`
KEY `idx_job_id_task_batch_status` (`job_id`, `task_batch_status`),
KEY `idx_create_dt` (`create_dt`),
KEY `idx_namespace_id_group_name` (`namespace_id`, `group_name`),
KEY `idx_workflow_task_batch_id_task_batch_status` (`workflow_task_batch_id`,`workflow_node_id`)
KEY `idx_workflow_task_batch_id_workflow_node_id` (`workflow_task_batch_id`,`workflow_node_id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 0
DEFAULT CHARSET = utf8mb4 COMMENT ='任务批次';

View File

@ -398,7 +398,7 @@ CREATE TABLE job
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_name VARCHAR(64) NOT NULL,
args_str TEXT NOT NULL,
args_str TEXT NOT NULL DEFAULT '',
args_type SMALLINT NOT NULL DEFAULT 1,
next_trigger_at BIGINT NOT NULL,
job_status SMALLINT NOT NULL DEFAULT 1,
@ -462,7 +462,9 @@ CREATE TABLE job_log_message
job_id BIGINT NOT NULL,
task_batch_id BIGINT NOT NULL,
task_id BIGINT NOT NULL,
message TEXT NOT NULL,
message TEXT NOT NULL,
log_num INT NOT NULL DEFAULT 1,
real_time BIGINT NOT NULL DEFAULT 0,
ext_attrs VARCHAR(256) DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
@ -478,6 +480,8 @@ COMMENT ON COLUMN "job_log_message"."job_id" IS '任务信息id';
COMMENT ON COLUMN "job_log_message"."task_batch_id" IS '任务批次id';
COMMENT ON COLUMN "job_log_message"."task_id" IS '调度任务id';
COMMENT ON COLUMN "job_log_message"."message" IS '调度信息';
COMMENT ON COLUMN "job_log_message"."log_num" IS '日志序号';
COMMENT ON COLUMN "job_log_message"."real_time" IS '实际时间';
COMMENT ON COLUMN "job_log_message"."create_dt" IS '创建时间';
COMMENT ON COLUMN "job_log_message"."ext_attrs" IS '扩展字段';
COMMENT ON TABLE "job_log_message" IS '调度日志';
@ -524,29 +528,39 @@ COMMENT ON TABLE "job_task" IS '任务实例';
CREATE TABLE job_task_batch
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
parent_id VARCHAR(64) NOT NULL DEFAULT '',
task_batch_status SMALLINT NOT NULL DEFAULT 0,
operation_reason SMALLINT NOT NULL DEFAULT 0,
execution_at BIGINT NOT NULL DEFAULT 0,
ext_attrs VARCHAR(256) DEFAULT '',
deleted SMALLINT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
workflow_node_id BIGINT NOT NULL DEFAULT 0,
parent_workflow_node_id BIGINT NOT NULL DEFAULT 0,
workflow_task_batch_id BIGINT NOT NULL DEFAULT 0,
parent_id VARCHAR(64) NOT NULL DEFAULT '',
task_batch_status SMALLINT NOT NULL DEFAULT 0,
operation_reason SMALLINT NOT NULL DEFAULT 0,
execution_at BIGINT NOT NULL DEFAULT 0,
system_task_type SMALLINT NOT NULL DEFAULT 3,
ext_attrs VARCHAR(256) DEFAULT '',
deleted SMALLINT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX "idx_namespace_id_group_name_to_job_task_batch" ON "job_task_batch" ("namespace_id", "group_name");
CREATE INDEX "idx_job_id_task_batch_status_to_job_task_batch" ON "job_task_batch" ("job_id", "task_batch_status");
CREATE INDEX "idx_create_dt_to_job_task_batch" ON "job_task_batch" ("create_dt");
CREATE INDEX "idx_workflow_task_batch_id_workflow_node_id" ON "job_task_batch" ("workflow_task_batch_id", "workflow_node_id");
COMMENT ON COLUMN "job_task_batch"."id" IS '主键';
COMMENT ON COLUMN "job_task_batch"."namespace_id" IS '命名空间id';
COMMENT ON COLUMN "job_task_batch"."group_name" IS '组名称';
COMMENT ON COLUMN "job_task_batch"."job_id" IS '任务信息id';
COMMENT ON COLUMN "job_task_batch"."task_batch_status" IS '任务批次状态 0、失败 1、成功';
COMMENT ON COLUMN "job_task_batch"."operation_reason" IS '操作原因';
COMMENT ON COLUMN "job_task_batch"."workflow_node_id" IS '工作流节点id';
COMMENT ON COLUMN "job_task_batch"."parent_workflow_node_id" IS '父节点';
COMMENT ON COLUMN "job_task_batch"."workflow_task_batch_id" IS '任务批次id';
COMMENT ON COLUMN "job_task_batch"."system_task_type" IS '任务类型 0、系统任务 1、业务任务';
COMMENT ON COLUMN "job_task_batch"."execution_at" IS '任务执行时间';
COMMENT ON COLUMN "job_task_batch"."parent_id" IS '父节点';
COMMENT ON COLUMN "job_task_batch"."deleted" IS '逻辑删除 1、删除';
@ -557,20 +571,20 @@ COMMENT ON TABLE "job_task" IS '任务批次';
CREATE TABLE job_notify_config
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
notify_status SMALLINT NOT NULL DEFAULT 0,
notify_type SMALLINT NOT NULL DEFAULT 0,
notify_attribute VARCHAR(512) NOT NULL,
notify_threshold INT NOT NULL DEFAULT 0,
notify_scene SMALLINT NOT NULL DEFAULT 0,
rate_limiter_status SMALLINT NOT NULL DEFAULT 0,
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
notify_status SMALLINT NOT NULL DEFAULT 0,
notify_type SMALLINT NOT NULL DEFAULT 0,
notify_attribute VARCHAR(512) NOT NULL,
notify_threshold INT NOT NULL DEFAULT 0,
notify_scene SMALLINT NOT NULL DEFAULT 0,
rate_limiter_status SMALLINT NOT NULL DEFAULT 0,
rate_limiter_threshold INT NOT NULL DEFAULT 0,
description VARCHAR(256) NOT NULL DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
description VARCHAR(256) NOT NULL DEFAULT '',
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_namespace_id_group_name_job_id_job_notify_config ON job_notify_config (namespace_id, group_name, job_id);
@ -655,3 +669,128 @@ COMMENT ON COLUMN "job_summary"."stop_reason" IS '失败原因';
COMMENT ON COLUMN "job_summary"."cancel_num" IS '执行失败-日志数量';
COMMENT ON COLUMN "job_summary"."cancel_reason" IS '失败原因';
COMMENT ON TABLE "job_summary" IS 'DashBoard_Job';
CREATE TABLE workflow
(
id BIGSERIAL PRIMARY KEY,
workflow_name varchar(64) NOT NULL,
namespace_id varchar(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name varchar(64) NOT NULL,
workflow_status smallint NOT NULL DEFAULT 1,
trigger_type smallint NOT NULL,
trigger_interval varchar(255) NOT NULL,
next_trigger_at BIGINT NOT NULL,
block_strategy smallint NOT NULL DEFAULT 1,
executor_timeout INT NOT NULL DEFAULT 0,
description varchar(256) NOT NULL DEFAULT '',
flow_info text DEFAULT NULL,
bucket_index INT NOT NULL DEFAULT 0,
version INT NOT NULL,
create_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted smallint NOT NULL DEFAULT 0,
ext_attrs varchar(256) NULL DEFAULT ''
);
CREATE INDEX idx_create_dt_workflow ON workflow (create_dt);
CREATE INDEX idx_namespace_id_group_name ON workflow (namespace_id, group_name);
COMMENT ON TABLE workflow IS '工作流';
COMMENT ON COLUMN workflow.id IS '主键';
COMMENT ON COLUMN workflow.workflow_name IS '工作流名称';
COMMENT ON COLUMN workflow.namespace_id IS '命名空间id';
COMMENT ON COLUMN workflow.group_name IS '组名称';
COMMENT ON COLUMN workflow.workflow_status IS '工作流状态 0、关闭、1、开启';
COMMENT ON COLUMN workflow.trigger_type IS '触发类型 1.CRON 表达式 2. 固定时间';
COMMENT ON COLUMN workflow.trigger_interval IS '间隔时长';
COMMENT ON COLUMN workflow.next_trigger_at IS '下次触发时间';
COMMENT ON COLUMN workflow.block_strategy IS '阻塞策略 1、丢弃 2、覆盖 3、并行';
COMMENT ON COLUMN workflow.executor_timeout IS '任务执行超时时间,单位秒';
COMMENT ON COLUMN workflow.description IS '描述';
COMMENT ON COLUMN workflow.flow_info IS '流程信息';
COMMENT ON COLUMN workflow.bucket_index IS 'bucket';
COMMENT ON COLUMN workflow.version IS '版本号';
COMMENT ON COLUMN workflow.create_dt IS '创建时间';
COMMENT ON COLUMN workflow.update_dt IS '修改时间';
COMMENT ON COLUMN workflow.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN workflow.ext_attrs IS '扩展字段';
CREATE TABLE workflow_node
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
node_name VARCHAR(64) NOT NULL,
group_name VARCHAR(64) NOT NULL,
job_id BIGINT NOT NULL,
workflow_id BIGINT NOT NULL,
node_type SMALLINT NOT NULL DEFAULT 1,
expression_type SMALLINT NOT NULL DEFAULT 0,
fail_strategy SMALLINT NOT NULL DEFAULT 1,
workflow_node_status SMALLINT NOT NULL DEFAULT 1,
priority_level INT NOT NULL DEFAULT 1,
node_info TEXT DEFAULT NULL,
version INT NOT NULL,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT NOT NULL DEFAULT 0,
ext_attrs VARCHAR(256) NULL DEFAULT ''
);
CREATE INDEX idx_create_dt_workflow_node ON workflow_node (create_dt);
CREATE INDEX idx_namespace_id_group_name ON workflow_node (namespace_id, group_name);
COMMENT ON TABLE workflow_node IS '工作流节点';
COMMENT ON COLUMN workflow_node.id IS '主键';
COMMENT ON COLUMN workflow_node.namespace_id IS '命名空间id';
COMMENT ON COLUMN workflow_node.node_name IS '节点名称';
COMMENT ON COLUMN workflow_node.group_name IS '组名称';
COMMENT ON COLUMN workflow_node.job_id IS '任务信息id';
COMMENT ON COLUMN workflow_node.workflow_id IS '工作流ID';
COMMENT ON COLUMN workflow_node.node_type IS '1、任务节点 2、条件节点';
COMMENT ON COLUMN workflow_node.expression_type IS '1、SpEl、2、Aviator 3、QL';
COMMENT ON COLUMN workflow_node.fail_strategy IS '失败策略 1、跳过 2、阻塞';
COMMENT ON COLUMN workflow_node.workflow_node_status IS '工作流节点状态 0、关闭、1、开启';
COMMENT ON COLUMN workflow_node.priority_level IS '优先级';
COMMENT ON COLUMN workflow_node.node_info IS '节点信息';
COMMENT ON COLUMN workflow_node.version IS '版本号';
COMMENT ON COLUMN workflow_node.create_dt IS '创建时间';
COMMENT ON COLUMN workflow_node.update_dt IS '修改时间';
COMMENT ON COLUMN workflow_node.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN workflow_node.ext_attrs IS '扩展字段';
CREATE TABLE workflow_task_batch
(
id BIGSERIAL PRIMARY KEY,
namespace_id VARCHAR(64) NOT NULL DEFAULT '764d604ec6fc45f68cd92514c40e9e1a',
group_name VARCHAR(64) NOT NULL,
workflow_id BIGINT NOT NULL,
task_batch_status SMALLINT NOT NULL DEFAULT 0,
operation_reason SMALLINT NOT NULL DEFAULT 0,
flow_info TEXT DEFAULT NULL,
execution_at BIGINT NOT NULL DEFAULT 0,
create_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
update_dt TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
deleted SMALLINT NOT NULL DEFAULT 0,
ext_attrs VARCHAR(256) NULL DEFAULT ''
);
CREATE INDEX idx_job_id_task_batch_status_workflow_task_batch ON workflow_task_batch (workflow_id, task_batch_status);
CREATE INDEX idx_create_dt_workflow_task_batch ON workflow_task_batch (create_dt);
CREATE INDEX idx_namespace_id_group_name_workflow_task_batch ON workflow_task_batch (namespace_id, group_name);
COMMENT ON TABLE workflow_task_batch IS '工作流批次';
COMMENT ON COLUMN workflow_task_batch.id IS '主键';
COMMENT ON COLUMN workflow_task_batch.namespace_id IS '命名空间id';
COMMENT ON COLUMN workflow_task_batch.group_name IS '组名称';
COMMENT ON COLUMN workflow_task_batch.workflow_id IS '工作流任务id';
COMMENT ON COLUMN workflow_task_batch.task_batch_status IS '任务批次状态 0、失败 1、成功';
COMMENT ON COLUMN workflow_task_batch.operation_reason IS '操作原因';
COMMENT ON COLUMN workflow_task_batch.flow_info IS '流程信息';
COMMENT ON COLUMN workflow_task_batch.execution_at IS '任务执行时间';
COMMENT ON COLUMN workflow_task_batch.create_dt IS '创建时间';
COMMENT ON COLUMN workflow_task_batch.update_dt IS '修改时间';
COMMENT ON COLUMN workflow_task_batch.deleted IS '逻辑删除 1、删除';
COMMENT ON COLUMN workflow_task_batch.ext_attrs IS '扩展字段';

View File

@ -4,14 +4,35 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage">
<id column="id" property="id" />
<result column="group_name" property="groupName" />
<result column="job_id" property="jobId" />
<result column="task_id" property="taskId" />
<result column="client_address" property="clientAddress"/>
<result column="task_batch_id" property="taskBatchId" />
<result column="create_dt" property="createDt" />
<result column="message" property="message" />
<id column="id" property="id"/>
<result column="namespace_id" property="namespaceId"/>
<result column="group_name" property="groupName"/>
<result column="job_id" property="jobId"/>
<result column="task_batch_id" property="taskBatchId"/>
<result column="task_id" property="taskId"/>
<result column="log_num" property="logNum"/>
<result column="message" property="message"/>
<result column="create_dt" property="createDt"/>
<result column="real_time" property="realTime"/>
</resultMap>
<!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id, log_num, message,
create_dt, real_time)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.namespaceId},
#{item.groupName},
#{item.jobId},
#{item.taskBatchId},
#{item.taskId},
#{item.logNum},
#{item.message},
#{item.createDt},
#{item.realTime}
)
</foreach>
</insert>
</mapper>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.Workflow">
<id column="id" property="id" />
<result column="namespace_id" property="namespaceId" />
<result column="group_name" property="groupName" />
<result column="workflow_status" property="workflowStatus" />
<result column="next_trigger_at" property="nextTriggerAt" />
<result column="flow_info" property="flowInfo" />
<result column="create_dt" property="createDt" />
<result column="update_dt" property="updateDt" />
<result column="deleted" property="deleted" />
<result column="ext_attrs" property="extAttrs" />
</resultMap>
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
update workflow rt,
(
<foreach collection="list" item="item" index="index" separator=" union all ">
select
#{item.nextTriggerAt} as next_trigger_at,
#{item.id} as id
</foreach>
) tt
set
rt.next_trigger_at = tt.next_trigger_at
where rt.id = tt.id
</update>
</mapper>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowNodeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.WorkflowNode">
<id column="id" property="id" />
<result column="namespace_id" property="namespaceId" />
<result column="group_name" property="groupName" />
<result column="job_id" property="jobId" />
<result column="node_type" property="nodeType" />
<result column="expression_type" property="expressionType" />
<result column="fail_strategy" property="failStrategy" />
<result column="workflow_node_status" property="workflowNodeStatus" />
<result column="node_expression" property="nodeExpression" />
<result column="create_dt" property="createDt" />
<result column="update_dt" property="updateDt" />
<result column="deleted" property="deleted" />
<result column="ext_attrs" property="extAttrs" />
</resultMap>
</mapper>

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowTaskBatchMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.WorkflowTaskBatch">
<id column="id" property="id"/>
<result column="namespace_id" property="namespaceId"/>
<result column="group_name" property="groupName"/>
<result column="workflow_id" property="workflowId"/>
<result column="task_batch_status" property="taskBatchStatus"/>
<result column="operation_reason" property="operationReason"/>
<result column="execution_at" property="executionAt"/>
<result column="create_dt" property="createDt"/>
<result column="update_dt" property="updateDt"/>
<result column="deleted" property="deleted"/>
<result column="ext_attrs" property="extAttrs"/>
</resultMap>
<select id="selectWorkflowBatchPageList"
parameterType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchQueryDO"
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchResponseDO">
SELECT a.*, b.workflow_name
FROM workflow_task_batch a join workflow b on a.workflow_id = b.id
<where>
a.namespace_id = #{queryDO.namespaceId}
<if test="queryDO.workflowId != null">
and a.workflow_id = #{queryDO.workflowId}
</if>
<if test="queryDO.groupNames != null and queryDO.groupNames.size > 0">
and a.group_name IN
<foreach collection="queryDO.groupNames" item="groupName" open="(" separator="," close=")">
#{groupName}
</foreach>
</if>
<if test="queryDO.taskBatchStatus != null">
and task_batch_status = #{queryDO.taskBatchStatus}
</if>
<if test="queryDO.workflowName != null">
and b.workflow_name like #{queryDO.workflowName}
</if>
and a.deleted = 0
order by a.id desc
</where>
</select>
</mapper>

View File

@ -4,14 +4,34 @@
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.JobLogMessage">
<id column="id" property="id" />
<result column="group_name" property="groupName" />
<result column="job_id" property="jobId" />
<result column="task_id" property="taskId" />
<result column="client_address" property="clientAddress"/>
<result column="task_batch_id" property="taskBatchId" />
<result column="create_dt" property="createDt" />
<result column="message" property="message" />
<id column="id" property="id"/>
<result column="namespace_id" property="namespaceId"/>
<result column="group_name" property="groupName"/>
<result column="job_id" property="jobId"/>
<result column="task_batch_id" property="taskBatchId"/>
<result column="task_id" property="taskId"/>
<result column="log_num" property="logNum"/>
<result column="message" property="message"/>
<result column="create_dt" property="createDt"/>
<result column="real_time" property="realTime"/>
</resultMap>
<!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id, log_num, message,
create_dt, real_time)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.namespaceId},
#{item.groupName},
#{item.jobId},
#{item.taskBatchId},
#{item.taskId},
#{item.logNum},
#{item.message},
#{item.createDt},
#{item.realTime}
)
</foreach>
</insert>
</mapper>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.Workflow">
<id column="id" property="id" />
<result column="namespace_id" property="namespaceId" />
<result column="group_name" property="groupName" />
<result column="workflow_status" property="workflowStatus" />
<result column="next_trigger_at" property="nextTriggerAt" />
<result column="flow_info" property="flowInfo" />
<result column="create_dt" property="createDt" />
<result column="update_dt" property="updateDt" />
<result column="deleted" property="deleted" />
<result column="ext_attrs" property="extAttrs" />
</resultMap>
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
UPDATE workflow AS rt
SET next_trigger_at = tt.next_trigger_at
FROM (
<foreach collection="list" item="item" index="index" separator=" union all ">
select
#{item.nextTriggerAt} as next_trigger_at,
#{item.id} as id
</foreach>
) AS tt
WHERE rt.id = tt.id
</update>
</mapper>

View File

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowNodeMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.WorkflowNode">
<id column="id" property="id" />
<result column="namespace_id" property="namespaceId" />
<result column="group_name" property="groupName" />
<result column="job_id" property="jobId" />
<result column="node_type" property="nodeType" />
<result column="expression_type" property="expressionType" />
<result column="fail_strategy" property="failStrategy" />
<result column="workflow_node_status" property="workflowNodeStatus" />
<result column="node_expression" property="nodeExpression" />
<result column="create_dt" property="createDt" />
<result column="update_dt" property="updateDt" />
<result column="deleted" property="deleted" />
<result column="ext_attrs" property="extAttrs" />
</resultMap>
</mapper>

View File

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aizuda.easy.retry.template.datasource.persistence.mapper.WorkflowTaskBatchMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.WorkflowTaskBatch">
<id column="id" property="id"/>
<result column="namespace_id" property="namespaceId"/>
<result column="group_name" property="groupName"/>
<result column="workflow_id" property="workflowId"/>
<result column="task_batch_status" property="taskBatchStatus"/>
<result column="operation_reason" property="operationReason"/>
<result column="execution_at" property="executionAt"/>
<result column="create_dt" property="createDt"/>
<result column="update_dt" property="updateDt"/>
<result column="deleted" property="deleted"/>
<result column="ext_attrs" property="extAttrs"/>
</resultMap>
<select id="selectWorkflowBatchPageList"
parameterType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchQueryDO"
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchResponseDO">
SELECT a.*, b.workflow_name
FROM workflow_task_batch a join workflow b on a.workflow_id = b.id
<where>
a.namespace_id = #{queryDO.namespaceId}
<if test="queryDO.workflowId != null">
and a.workflow_id = #{queryDO.workflowId}
</if>
<if test="queryDO.groupNames != null and queryDO.groupNames.size > 0">
and a.group_name IN
<foreach collection="queryDO.groupNames" item="groupName" open="(" separator="," close=")">
#{groupName}
</foreach>
</if>
<if test="queryDO.taskBatchStatus != null">
and task_batch_status = #{queryDO.taskBatchStatus}
</if>
<if test="queryDO.workflowName != null">
and b.workflow_name like #{queryDO.workflowName}
</if>
and a.deleted = 0
order by a.id desc
</where>
</select>
</mapper>

View File

@ -161,9 +161,7 @@ public class WorkflowBatchHandler {
jobTaskBatch.setId(workflowTaskBatchId);
jobTaskBatch.setTaskBatchStatus(taskStatus);
jobTaskBatch.setOperationReason(operationReason);
Assert.isTrue(1 == workflowTaskBatchMapper.updateById(jobTaskBatch),
() -> new EasyRetryServerException("更新任务失败"));
workflowTaskBatchMapper.updateById(jobTaskBatch);
}
public void stop(Long workflowTaskBatchId, Integer operationReason) {