fix: 实现batchInsert、batchUpdate, 格式化mapper.xml

This commit is contained in:
dhb52 2024-04-03 16:21:58 +08:00
parent 0ebeeda840
commit 27ac845c5e
46 changed files with 513 additions and 455 deletions

View File

@ -17,14 +17,17 @@
<result column="create_dt" jdbcType="TIMESTAMP" property="createDt" /> <result column="create_dt" jdbcType="TIMESTAMP" property="createDt" />
<result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" /> <result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id,namespace_id, group_name,job_id,notify_status,notify_type, notify_attribute, notify_threshold, notify_scene,rate_limiter_status,rate_limiter_threshold, description, id,namespace_id, group_name,job_id,notify_status,notify_type, notify_attribute, notify_threshold,
create_dt, update_dt notify_scene, rate_limiter_status, rate_limiter_threshold, description, create_dt, update_dt
</sql> </sql>
<select id="selectJobNotifyConfigList" <select id="selectJobNotifyConfigList"
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobNotifyConfigResponseDO"> resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobNotifyConfigResponseDO">
SELECT a.*, b.job_name SELECT a.*, b.job_name
FROM job_notify_config a join job b on a.job_id = b.id FROM job_notify_config a
JOIN job b ON a.job_id = b.id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>

View File

@ -13,11 +13,17 @@
<result column="update_dt" property="updateDt" /> <result column="update_dt" property="updateDt" />
<result column="deleted" property="deleted" /> <result column="deleted" property="deleted" />
</resultMap> </resultMap>
<select id="selectJobBatchPageList" <select id="selectJobBatchPageList"
parameterType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchQueryDO" parameterType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchQueryDO"
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchResponseDO"> resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchResponseDO">
SELECT a.*, b.job_name, b.task_type, b.block_strategy, b.trigger_type SELECT a.*,
FROM job_task_batch a join job b on a.job_id = b.id b.job_name,
b.task_type,
b.block_strategy,
b.trigger_type
FROM job_task_batch a
JOIN job b ON a.job_id = b.id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
@ -55,8 +61,15 @@
<select id="selectJobBatchListByIds" <select id="selectJobBatchListByIds"
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchResponseDO"> resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.JobBatchResponseDO">
SELECT a.*, b.job_name, b.task_type, b.block_strategy, b.trigger_type,b.executor_info,b.args_str SELECT a.*,
FROM job_task_batch a join job b on a.job_id = b.id b.job_name,
b.task_type,
b.block_strategy,
b.trigger_type,
b.executor_info,
b.args_str
FROM job_task_batch a
JOIN job b ON a.job_id = b.id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>

View File

@ -12,6 +12,7 @@
<result column="create_dt" jdbcType="TIMESTAMP" property="createDt" /> <result column="create_dt" jdbcType="TIMESTAMP" property="createDt" />
<result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" /> <result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, group_name, notify_type, notify_attribute, notify_threshold, notify_scene, description, id, group_name, notify_type, notify_attribute, notify_threshold, notify_scene, description,
create_dt, update_dt create_dt, update_dt

View File

@ -14,7 +14,9 @@
<result column="create_dt" jdbcType="TIMESTAMP" property="createDt" /> <result column="create_dt" jdbcType="TIMESTAMP" property="createDt" />
<result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" /> <result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, scene_name, group_name, scene_status, max_retry_count, back_off, `trigger_interval`, deadline_request, description, create_dt, update_dt id, scene_name, group_name, scene_status, max_retry_count, back_off, trigger_interval,
deadline_request, description, create_dt, update_dt
</sql> </sql>
</mapper> </mapper>

View File

@ -16,11 +16,14 @@
<result column="deleted" property="deleted"/> <result column="deleted" property="deleted"/>
<result column="ext_attrs" property="extAttrs"/> <result column="ext_attrs" property="extAttrs"/>
</resultMap> </resultMap>
<select id="selectWorkflowBatchPageList" <select id="selectWorkflowBatchPageList"
parameterType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchQueryDO" parameterType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchQueryDO"
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchResponseDO"> resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.WorkflowBatchResponseDO">
SELECT a.*, b.workflow_name SELECT a.*,
FROM workflow_task_batch a join workflow b on a.workflow_id = b.id b.workflow_name
FROM workflow_task_batch a
JOIN workflow b ON a.workflow_id = b.id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>

View File

@ -18,18 +18,8 @@
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO job_log_message INSERT INTO job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id,
( log_num, message, create_dt, real_time)
namespace_id,
group_name,
job_id,
task_batch_id,
task_id,
log_num,
message,
create_dt,
real_time
)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (

View File

@ -29,7 +29,7 @@
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
UPDATE job rt, UPDATE job rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -44,7 +44,7 @@
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
UPDATE job_summary rt, UPDATE job_summary rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.successNum} AS success_num, #{item.successNum} AS success_num,
#{item.failNum} AS fail_num, #{item.failNum} AS fail_num,

View File

@ -37,7 +37,7 @@
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
UPDATE retry_summary rt, UPDATE retry_summary rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.runningNum} AS running_num, #{item.runningNum} AS running_num,
#{item.finishNum} AS finish_num, #{item.finishNum} AS finish_num,

View File

@ -12,6 +12,7 @@
<result column="message" property="message"/> <result column="message" property="message"/>
<result column="real_time" property="realTime"/> <result column="real_time" property="realTime"/>
</resultMap> </resultMap>
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO retry_task_log_message (namespace_id, group_name, unique_id, log_num, message, INSERT INTO retry_task_log_message (namespace_id, group_name, unique_id, log_num, message,
@ -33,7 +34,7 @@
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
UPDATE retry_task_log_message jlm, UPDATE retry_task_log_message jlm,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.message} AS message, #{item.message} AS message,
#{item.logNum} AS log_num, #{item.logNum} AS log_num,

View File

@ -19,22 +19,39 @@
<result column="create_dt" jdbcType="TIMESTAMP" property="createDt" /> <result column="create_dt" jdbcType="TIMESTAMP" property="createDt" />
<result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" /> <result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, retry_count, retry_status, id, namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, retry_count, retry_status,
create_dt, update_dt, task_type create_dt, update_dt, task_type
</sql> </sql>
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO retry_task (namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, task_type, retry_status, create_dt) INSERT INTO retry_task (namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, task_type, retry_status, create_dt)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
(#{item.namespaceId}, #{item.uniqueId}, #{item.groupName}, #{item.sceneName}, #{item.idempotentId}, #{item.bizNo}, #{item.executorName}, #{item.argsStr}, #{item.extAttrs}, #{item.nextTriggerAt}, #{item.taskType}, #{item.retryStatus}, #{item.createDt}) (
#{item.namespaceId},
#{item.uniqueId},
#{item.groupName},
#{item.sceneName},
#{item.idempotentId},
#{item.bizNo},
#{item.executorName},
#{item.argsStr},
#{item.extAttrs},
#{item.nextTriggerAt},
#{item.taskType},
#{item.retryStatus},
#{item.createDt}
)
</foreach> </foreach>
</insert> </insert>
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
UPDATE retry_task_${partition} rt, UPDATE retry_task_${partition} rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -44,7 +44,7 @@
<update id="batchUpdateExpireAt" parameterType="java.util.List"> <update id="batchUpdateExpireAt" parameterType="java.util.List">
UPDATE server_node rt, UPDATE server_node rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.expireAt} AS expire_at, #{item.expireAt} AS expire_at,
#{item.contextPath} AS context_path, #{item.contextPath} AS context_path,

View File

@ -19,7 +19,7 @@
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
UPDATE workflow rt, UPDATE workflow rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -18,18 +18,8 @@
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO job_log_message INSERT INTO job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id,
( log_num, message, create_dt, real_time)
namespace_id,
group_name,
job_id,
task_batch_id,
task_id,
log_num,
message,
create_dt,
real_time
)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (

View File

@ -29,7 +29,7 @@
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
UPDATE job rt, UPDATE job rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -44,7 +44,7 @@
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
UPDATE job_summary rt, UPDATE job_summary rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.successNum} AS success_num, #{item.successNum} AS success_num,
#{item.failNum} AS fail_num, #{item.failNum} AS fail_num,

View File

@ -37,7 +37,7 @@
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
UPDATE retry_summary rt, UPDATE retry_summary rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.runningNum} AS running_num, #{item.runningNum} AS running_num,
#{item.finishNum} AS finish_num, #{item.finishNum} AS finish_num,

View File

@ -12,6 +12,7 @@
<result column="message" property="message"/> <result column="message" property="message"/>
<result column="real_time" property="realTime"/> <result column="real_time" property="realTime"/>
</resultMap> </resultMap>
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO retry_task_log_message (namespace_id, group_name, unique_id, log_num, message, INSERT INTO retry_task_log_message (namespace_id, group_name, unique_id, log_num, message,
@ -33,7 +34,7 @@
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
UPDATE retry_task_log_message jlm, UPDATE retry_task_log_message jlm,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.message} AS message, #{item.message} AS message,
#{item.logNum} AS log_num, #{item.logNum} AS log_num,

View File

@ -19,22 +19,39 @@
<result column="create_dt" jdbcType="TIMESTAMP" property="createDt" /> <result column="create_dt" jdbcType="TIMESTAMP" property="createDt" />
<result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" /> <result column="update_dt" jdbcType="TIMESTAMP" property="updateDt" />
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, retry_count, retry_status, id, namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, retry_count, retry_status,
create_dt, update_dt, task_type create_dt, update_dt, task_type
</sql> </sql>
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO retry_task (namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, task_type, retry_status, create_dt) INSERT INTO retry_task (namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, next_trigger_at, task_type, retry_status, create_dt)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
(#{item.namespaceId}, #{item.uniqueId}, #{item.groupName}, #{item.sceneName}, #{item.idempotentId}, #{item.bizNo}, #{item.executorName}, #{item.argsStr}, #{item.extAttrs}, #{item.nextTriggerAt}, #{item.taskType}, #{item.retryStatus}, #{item.createDt}) (
#{item.namespaceId},
#{item.uniqueId},
#{item.groupName},
#{item.sceneName},
#{item.idempotentId},
#{item.bizNo},
#{item.executorName},
#{item.argsStr},
#{item.extAttrs},
#{item.nextTriggerAt},
#{item.taskType},
#{item.retryStatus},
#{item.createDt}
)
</foreach> </foreach>
</insert> </insert>
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
UPDATE retry_task_${partition} rt, UPDATE retry_task_${partition} rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -44,7 +44,7 @@
<update id="batchUpdateExpireAt" parameterType="java.util.List"> <update id="batchUpdateExpireAt" parameterType="java.util.List">
UPDATE server_node rt, UPDATE server_node rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.expireAt} AS expire_at, #{item.expireAt} AS expire_at,
#{item.contextPath} AS context_path, #{item.contextPath} AS context_path,

View File

@ -19,7 +19,7 @@
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
UPDATE workflow rt, UPDATE workflow rt,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -18,21 +18,10 @@
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT ALL INSERT INTO job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id,
<foreach collection="list" item="item" separator=""> log_num, message, create_dt, real_time)
INTO job_log_message <foreach collection="list" item="item" separator="UNION ALL">
( SELECT
namespace_id,
group_name,
job_id,
task_batch_id,
task_id,
log_num,
message,
create_dt,
real_time
)
VALUES (
#{item.namespaceId}, #{item.namespaceId},
#{item.groupName}, #{item.groupName},
#{item.jobId}, #{item.jobId},
@ -42,8 +31,7 @@
#{item.message}, #{item.message},
#{item.createDt}, #{item.createDt},
#{item.realTime} #{item.realTime}
) FROM DUAL
</foreach> </foreach>
SELECT * FROM DUAL
</insert> </insert>
</mapper> </mapper>

View File

@ -27,18 +27,11 @@
</resultMap> </resultMap>
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
MERGE INTO job dest <foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
USING ( UPDATE job
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> SET next_trigger_at = #{item.nextTriggerAt}
SELECT WHERE id = #{item.id}
#{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id
FROM DUAL
</foreach> </foreach>
) src
ON (dest.id = src.id)
WHEN MATCHED THEN
UPDATE SET dest.next_trigger_at = src.next_trigger_at
</update> </update>
</mapper> </mapper>

View File

@ -22,7 +22,7 @@
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false" keyProperty="id"> <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false" keyProperty="id">
INSERT INTO job_summary (namespace_id, group_name, business_id, trigger_at, system_task_type, INSERT INTO job_summary (namespace_id, group_name, business_id, trigger_at, system_task_type,
success_num,fail_num,fail_reason,stop_num,stop_reason, cancel_num,cancel_reason) success_num,fail_num,fail_reason,stop_num,stop_reason, cancel_num,cancel_reason)
<foreach collection="list" item="item" separator=" UNION ALL "> <foreach collection="list" item="item" separator="UNION ALL">
SELECT SELECT
#{item.namespaceId}, #{item.namespaceId},
#{item.groupName}, #{item.groupName},
@ -91,8 +91,7 @@
<select id="dashboardRank" <select id="dashboardRank"
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.DashboardRetryLineResponseDO$Rank"> resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.DashboardRetryLineResponseDO$Rank">
SELECT * FROM SELECT * FROM (
(
SELECT SELECT
<if test="systemTaskType == 3"> <if test="systemTaskType == 3">
group_name || '/' || (SELECT job_name FROM job WHERE id = business_id) AS name, group_name || '/' || (SELECT job_name FROM job WHERE id = business_id) AS name,
@ -104,8 +103,7 @@
FROM job_summary FROM job_summary
${ew.customSqlSegment} ${ew.customSqlSegment}
HAVING SUM(fail_num) > 0 HAVING SUM(fail_num) > 0
ORDER BY total DESC ORDER BY total DESC)
)
WHERE ROWNUM <![CDATA[ <= ]]> 10 WHERE ROWNUM <![CDATA[ <= ]]> 10
</select> </select>

View File

@ -17,24 +17,23 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name, args_str, ext_attrs, create_dt, task_type id, namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no,
executor_name, args_str, ext_attrs, create_dt, task_type
</sql> </sql>
<insert id="insertBatch"> <insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false" keyProperty="id">
INSERT ALL INSERT INTO retry_dead_letter (namespace_id, unique_id, group_name, scene_name,
<foreach collection="retryDeadLetters" item="retryDeadLetter" separator="">
INTO retry_dead_letter (namespace_id, unique_id, group_name, scene_name,
idempotent_id, biz_no, executor_name, args_str, idempotent_id, biz_no, executor_name, args_str,
ext_attrs, create_dt) ext_attrs, create_dt)
VALUES ( <foreach collection="retryDeadLetters" item="retryDeadLetter" separator="UNION ALL">
SELECT
#{retryDeadLetter.namespaceId,jdbcType=VARCHAR}, #{retryDeadLetter.uniqueId,jdbcType=VARCHAR}, #{retryDeadLetter.namespaceId,jdbcType=VARCHAR}, #{retryDeadLetter.uniqueId,jdbcType=VARCHAR},
#{retryDeadLetter.groupName,jdbcType=VARCHAR}, #{retryDeadLetter.sceneName,jdbcType=VARCHAR}, #{retryDeadLetter.groupName,jdbcType=VARCHAR}, #{retryDeadLetter.sceneName,jdbcType=VARCHAR},
#{retryDeadLetter.idempotentId,jdbcType=VARCHAR}, #{retryDeadLetter.bizNo,jdbcType=VARCHAR}, #{retryDeadLetter.idempotentId,jdbcType=VARCHAR}, #{retryDeadLetter.bizNo,jdbcType=VARCHAR},
#{retryDeadLetter.executorName,jdbcType=VARCHAR}, #{retryDeadLetter.argsStr,jdbcType=VARCHAR}, #{retryDeadLetter.executorName,jdbcType=VARCHAR}, #{retryDeadLetter.argsStr,jdbcType=VARCHAR},
#{retryDeadLetter.extAttrs,jdbcType=VARCHAR}, #{retryDeadLetter.createDt,jdbcType=TIMESTAMP} #{retryDeadLetter.extAttrs,jdbcType=VARCHAR}, #{retryDeadLetter.createDt,jdbcType=TIMESTAMP}
) FROM DUAL
</foreach> </foreach>
SELECT * FROM DUAL
</insert> </insert>
<select id="countRetryDeadLetterByCreateAt" resultType="int"> <select id="countRetryDeadLetterByCreateAt" resultType="int">

View File

@ -94,16 +94,14 @@
resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.DashboardRetryLineResponseDO$Rank"> resultType="com.aizuda.easy.retry.template.datasource.persistence.dataobject.DashboardRetryLineResponseDO$Rank">
SELECT SELECT
* *
FROM FROM (
(
SELECT SELECT
group_name || '/' || scene_name AS name, group_name || '/' || scene_name AS name,
SUM(running_num + finish_num + max_count_num + suspend_num) AS total SUM(running_num + finish_num + max_count_num + suspend_num) AS total
FROM retry_summary FROM retry_summary
${ew.customSqlSegment} ${ew.customSqlSegment}
HAVING SUM(running_num + finish_num + max_count_num + suspend_num) > 0 HAVING SUM(running_num + finish_num + max_count_num + suspend_num) > 0
ORDER BY SUM(running_num + finish_num + max_count_num + suspend_num) DESC ORDER BY SUM(running_num + finish_num + max_count_num + suspend_num) DESC)
)
WHERE ROWNUM <![CDATA[ <= ]]> 10 WHERE ROWNUM <![CDATA[ <= ]]> 10
</select> </select>

View File

@ -23,18 +23,16 @@
</sql> </sql>
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="false" keyProperty="id">
INSERT ALL INSERT INTO retry_task_log (unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name,
<foreach collection="list" item="item" separator="">
INTO retry_task_log (unique_id, group_name, scene_name, idempotent_id, biz_no, executor_name,
args_str, ext_attrs, task_type, create_dt, namespace_id) args_str, ext_attrs, task_type, create_dt, namespace_id)
VALUES ( <foreach collection="list" item="item" separator="UNION ALL">
SELECT
#{item.uniqueId}, #{item.groupName}, #{item.sceneName}, #{item.idempotentId}, #{item.uniqueId}, #{item.groupName}, #{item.sceneName}, #{item.idempotentId},
#{item.bizNo}, #{item.executorName}, #{item.argsStr}, #{item.extAttrs}, #{item.bizNo}, #{item.executorName}, #{item.argsStr}, #{item.extAttrs},
#{item.taskType}, #{item.createDt}, #{item.namespaceId} #{item.taskType}, #{item.createDt}, #{item.namespaceId}
) FROM DUAL
</foreach> </foreach>
SELECT * FROM DUAL
</insert> </insert>
<!-- 重试统计 --> <!-- 重试统计 -->

View File

@ -11,4 +11,28 @@
<result column="message" property="message" /> <result column="message" property="message" />
</resultMap> </resultMap>
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO retry_task_log_message (namespace_id, group_name, unique_id, log_num, message,
create_dt, real_time)
<foreach collection="list" item="item" separator="UNION ALL">
SELECT
#{item.namespaceId},
#{item.groupName},
#{item.uniqueId},
#{item.logNum},
#{item.message},
#{item.createDt},
#{item.realTime}
FROM DUAL
</foreach>
</insert>
<update id="batchUpdate" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="BEGIN" separator=";" close=";END;">
UPDATE retry_task_log_message
SET message = #{item.message}, log_num = #{item.logNum}
WHERE id = #{item.id}
</foreach>
</update>
</mapper> </mapper>

View File

@ -27,31 +27,22 @@
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT ALL INSERT INTO retry_task (namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no,
<foreach collection="list" item="item" separator="">
INTO retry_task (namespace_id, unique_id, group_name, scene_name, idempotent_id, biz_no,
executor_name, args_str, ext_attrs, next_trigger_at, task_type, retry_status, create_dt) executor_name, args_str, ext_attrs, next_trigger_at, task_type, retry_status, create_dt)
VALUES ( <foreach collection="list" item="item" separator="UNION ALL">
SELECT
#{item.namespaceId}, #{item.uniqueId}, #{item.groupName}, #{item.sceneName}, #{item.idempotentId}, #{item.namespaceId}, #{item.uniqueId}, #{item.groupName}, #{item.sceneName}, #{item.idempotentId},
#{item.bizNo}, #{item.executorName}, #{item.argsStr}, #{item.extAttrs}, #{item.nextTriggerAt}, #{item.bizNo}, #{item.executorName}, #{item.argsStr}, #{item.extAttrs}, #{item.nextTriggerAt},
#{item.taskType}, #{item.retryStatus}, #{item.createDt} #{item.taskType}, #{item.retryStatus}, #{item.createDt}
) FROM DUAL
</foreach> </foreach>
SELECT * FROM DUAL
</insert> </insert>
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
MERGE INTO retry_task_${partition} dest <foreach collection="list" item="item" index="index" open="BEGIN" separator=";" close=";END;">
USING ( UPDATE retry_task_${partition}
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> SET next_trigger_at = #{item.nextTriggerAt}
SELECT WHERE id = #{item.id}
#{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id
FROM DUAL
</foreach> </foreach>
) src
ON (dest.id = src.id)
WHEN MATCHED THEN
UPDATE SET dest.next_trigger_at = src.next_trigger_at
</update> </update>
</mapper> </mapper>

View File

@ -23,7 +23,7 @@
<!-- useGeneratedKeys="false" 否则报错ORA-00933: SQL command not properly ended --> <!-- useGeneratedKeys="false" 否则报错ORA-00933: SQL command not properly ended -->
INSERT INTO server_node (namespace_id, group_name, host_id, host_ip, host_port, INSERT INTO server_node (namespace_id, group_name, host_id, host_ip, host_port,
expire_at, node_type, ext_attrs, context_path, create_dt) expire_at, node_type, ext_attrs, context_path, create_dt)
<foreach collection="records" item="item" index="index" separator=" UNION "> <foreach collection="records" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.namespaceId,jdbcType=VARCHAR}, #{item.namespaceId,jdbcType=VARCHAR},
#{item.groupName,jdbcType=VARCHAR}, #{item.groupName,jdbcType=VARCHAR},

View File

@ -17,18 +17,10 @@
</resultMap> </resultMap>
<update id="updateBatchNextTriggerAtById" parameterType="java.util.List"> <update id="updateBatchNextTriggerAtById" parameterType="java.util.List">
MERGE INTO workflow dest <foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
USING ( UPDATE workflow
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> SET next_trigger_at = #{item.nextTriggerAt}
SELECT WHERE id = #{item.id}
#{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id
FROM DUAL
</foreach> </foreach>
) src
ON (dest.id = src.id)
WHEN MATCHED THEN
UPDATE SET
dest.next_trigger_at = src.next_trigger_at
</update> </update>
</mapper> </mapper>

View File

@ -30,7 +30,7 @@
UPDATE job AS rt UPDATE job AS rt
SET next_trigger_at = tt.next_trigger_at SET next_trigger_at = tt.next_trigger_at
FROM ( FROM (
<foreach collection="list" item="item" index="index" separator=" union all "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
select select
#{item.nextTriggerAt} as next_trigger_at, #{item.nextTriggerAt} as next_trigger_at,
#{item.id} as id #{item.id} as id

View File

@ -51,7 +51,7 @@
cancel_num = tt.cancel_num, cancel_num = tt.cancel_num,
cancel_reason = tt.cancel_reason cancel_reason = tt.cancel_reason
FROM ( FROM (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.successNum} AS success_num, #{item.successNum} AS success_num,
#{item.failNum} AS fail_num, #{item.failNum} AS fail_num,

View File

@ -40,7 +40,7 @@
max_count_num = tt.max_count_num, max_count_num = tt.max_count_num,
suspend_num = tt.suspend_num suspend_num = tt.suspend_num
FROM ( FROM (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.runningNum} AS running_num, #{item.runningNum} AS running_num,
#{item.finishNum} AS finish_num, #{item.finishNum} AS finish_num,

View File

@ -31,7 +31,7 @@
<update id="batchUpdate" parameterType="java.util.List"> <update id="batchUpdate" parameterType="java.util.List">
UPDATE retry_task_log_message jlm, UPDATE retry_task_log_message jlm,
( (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.message} AS message, #{item.message} AS message,
#{item.logNum} AS log_num, #{item.logNum} AS log_num,

View File

@ -35,7 +35,7 @@
UPDATE retry_task_${partition} AS rt UPDATE retry_task_${partition} AS rt
SET next_trigger_at = tt.next_trigger_at SET next_trigger_at = tt.next_trigger_at
FROM ( FROM (
<foreach collection="list" item="item" index="index" separator=" union all "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
select select
#{item.nextTriggerAt} as next_trigger_at, #{item.nextTriggerAt} as next_trigger_at,
#{item.id} as id #{item.id} as id

View File

@ -43,7 +43,7 @@
SET expire_at = tt.expire_at, SET expire_at = tt.expire_at,
context_path = tt.context_path context_path = tt.context_path
FROM ( FROM (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.expireAt} AS expire_at, #{item.expireAt} AS expire_at,
#{item.contextPath} AS context_path, #{item.contextPath} AS context_path,

View File

@ -19,7 +19,7 @@
UPDATE workflow AS rt UPDATE workflow AS rt
SET next_trigger_at = tt.next_trigger_at SET next_trigger_at = tt.next_trigger_at
FROM ( FROM (
<foreach collection="list" item="item" index="index" separator=" union all "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
select select
#{item.nextTriggerAt} as next_trigger_at, #{item.nextTriggerAt} as next_trigger_at,
#{item.id} as id #{item.id} as id

View File

@ -18,18 +18,8 @@
<!-- 定义批量新增的 SQL 映射 --> <!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List"> <insert id="batchInsert" parameterType="java.util.List">
INSERT INTO job_log_message INSERT INTO job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id,
( log_num, message, create_dt, real_time)
namespace_id,
group_name,
job_id,
task_batch_id,
task_id,
log_num,
message,
create_dt,
real_time
)
VALUES VALUES
<foreach collection="list" item="item" separator=","> <foreach collection="list" item="item" separator=",">
( (

View File

@ -31,7 +31,7 @@
SET next_trigger_at = src.next_trigger_at SET next_trigger_at = src.next_trigger_at
FROM job AS dest FROM job AS dest
JOIN ( JOIN (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -52,7 +52,7 @@
cancel_reason = src.cancel_reason cancel_reason = src.cancel_reason
FROM job_summary AS dest FROM job_summary AS dest
JOIN ( JOIN (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.successNum} AS success_num, #{item.successNum} AS success_num,
#{item.failNum} AS fail_num, #{item.failNum} AS fail_num,

View File

@ -48,7 +48,7 @@
cancel_reason = src.cancel_reason cancel_reason = src.cancel_reason
FROM job_summary AS dest FROM job_summary AS dest
JOIN ( JOIN (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.successNum} AS success_num, #{item.successNum} AS success_num,
#{item.failNum} AS fail_num, #{item.failNum} AS fail_num,

View File

@ -0,0 +1,49 @@
<?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.RetryTaskLogMessageMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.aizuda.easy.retry.template.datasource.persistence.po.RetryTaskLogMessage">
<id column="id" property="id" />
<result column="group_name" property="groupName" />
<result column="unique_id" property="uniqueId" />
<result column="create_dt" property="createDt" />
<result column="log_num" property="logNum"/>
<result column="message" property="message"/>
<result column="real_time" property="realTime"/>
</resultMap>
<!-- 定义批量新增的 SQL 映射 -->
<insert id="batchInsert" parameterType="java.util.List">
INSERT INTO retry_task_log_message (namespace_id, group_name, unique_id, log_num, message,
create_dt, real_time)
VALUES
<foreach collection="list" item="item" separator=",">
(
#{item.namespaceId},
#{item.groupName},
#{item.uniqueId},
#{item.logNum},
#{item.message},
#{item.createDt},
#{item.realTime}
)
</foreach>
</insert>
<update id="batchUpdate" parameterType="java.util.List">
UPDATE retry_task_log_message
SET message = src.message, log_num = src.log_num
FROM retry_task_log_message AS dest
JOIN (
<foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT
#{item.message} AS message,
#{item.logNum} AS log_num,
#{item.id} AS id
</foreach>
) AS src
ON dest.id = src.id
</update>
</mapper>

View File

@ -53,7 +53,7 @@
SET target.next_trigger_at = src.next_trigger_at SET target.next_trigger_at = src.next_trigger_at
FROM retry_task_${partition} as target FROM retry_task_${partition} as target
JOIN ( JOIN (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id

View File

@ -46,7 +46,7 @@
context_path = src.context_path context_path = src.context_path
FROM server_node AS dest FROM server_node AS dest
JOIN ( JOIN (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.expireAt} AS expire_at, #{item.expireAt} AS expire_at,
#{item.contextPath} AS context_path, #{item.contextPath} AS context_path,

View File

@ -21,7 +21,7 @@
SET workflow.next_trigger_at = src.next_trigger_at SET workflow.next_trigger_at = src.next_trigger_at
FROM workflow FROM workflow
JOIN ( JOIN (
<foreach collection="list" item="item" index="index" separator=" UNION ALL "> <foreach collection="list" item="item" index="index" separator="UNION ALL">
SELECT SELECT
#{item.nextTriggerAt} AS next_trigger_at, #{item.nextTriggerAt} AS next_trigger_at,
#{item.id} AS id #{item.id} AS id