feat(sj_1.2.0-beta1): oracle日志insertBatch采用BEGIN END
This commit is contained in:
parent
02520f635e
commit
bbbf73c4fb
@ -3,10 +3,10 @@
|
|||||||
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.JobLogMessageMapper">
|
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.JobLogMessageMapper">
|
||||||
|
|
||||||
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
|
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
|
||||||
INSERT INTO sj_job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id,
|
<foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
|
||||||
log_num, message, create_dt, real_time)
|
INSERT INTO sj_job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id,
|
||||||
<foreach collection="list" item="item" separator="UNION ALL">
|
log_num, message, create_dt, real_time)
|
||||||
SELECT
|
VALUES (
|
||||||
#{item.namespaceId},
|
#{item.namespaceId},
|
||||||
#{item.groupName},
|
#{item.groupName},
|
||||||
#{item.jobId},
|
#{item.jobId},
|
||||||
@ -16,7 +16,7 @@
|
|||||||
#{item.message},
|
#{item.message},
|
||||||
#{item.createDt},
|
#{item.createDt},
|
||||||
#{item.realTime}
|
#{item.realTime}
|
||||||
FROM DUAL
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.JobSummaryMapper">
|
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.JobSummaryMapper">
|
||||||
|
|
||||||
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
|
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
|
||||||
INSERT INTO sj_job_summary (namespace_id, group_name, business_id, trigger_at, system_task_type, success_num,
|
<foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
|
||||||
fail_num, fail_reason, stop_num, stop_reason, cancel_num, cancel_reason)
|
INSERT INTO sj_job_summary (namespace_id, group_name, business_id, trigger_at, system_task_type, success_num,
|
||||||
<foreach collection="list" item="item" separator="UNION ALL">
|
fail_num, fail_reason, stop_num, stop_reason, cancel_num, cancel_reason)
|
||||||
SELECT
|
VALUES (
|
||||||
#{item.namespaceId},
|
#{item.namespaceId},
|
||||||
#{item.groupName},
|
#{item.groupName},
|
||||||
#{item.businessId},
|
#{item.businessId},
|
||||||
@ -19,12 +19,12 @@
|
|||||||
#{item.stopReason},
|
#{item.stopReason},
|
||||||
#{item.cancelNum},
|
#{item.cancelNum},
|
||||||
#{item.cancelReason}
|
#{item.cancelReason}
|
||||||
FROM DUAL
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updateBatch" parameterType="java.util.List">
|
<update id="updateBatch" parameterType="java.util.List">
|
||||||
<foreach collection="list" item="item" index="index" open="BEGIN" separator=";" close=";END;">
|
<foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
|
||||||
UPDATE sj_job_summary
|
UPDATE sj_job_summary
|
||||||
SET success_num = #{item.successNum},
|
SET success_num = #{item.successNum},
|
||||||
fail_num = #{item.failNum},
|
fail_num = #{item.failNum},
|
||||||
|
@ -3,19 +3,19 @@
|
|||||||
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.RetryTaskLogMessageMapper">
|
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.RetryTaskLogMessageMapper">
|
||||||
|
|
||||||
<insert id="insertBatch" parameterType="java.util.List">
|
<insert id="insertBatch" parameterType="java.util.List">
|
||||||
INSERT INTO sj_retry_task_log_message (namespace_id, group_name, unique_id, log_num, message,
|
<foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
|
||||||
create_dt, real_time)
|
INSERT INTO sj_retry_task_log_message (namespace_id, group_name, unique_id, log_num, message,
|
||||||
<foreach collection="list" item="item" separator="UNION ALL">
|
create_dt, real_time)
|
||||||
SELECT
|
VALUES (
|
||||||
#{item.namespaceId},
|
#{item.namespaceId},
|
||||||
#{item.groupName},
|
#{item.groupName},
|
||||||
#{item.uniqueId},
|
#{item.uniqueId},
|
||||||
#{item.logNum},
|
#{item.logNum},
|
||||||
#{item.message},
|
#{item.message},
|
||||||
#{item.createDt},
|
#{item.createDt},
|
||||||
#{item.realTime}
|
#{item.realTime}
|
||||||
FROM DUAL
|
)
|
||||||
</foreach>
|
</foreach>
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<update id="updateBatch" parameterType="java.util.List">
|
<update id="updateBatch" parameterType="java.util.List">
|
||||||
|
@ -0,0 +1,54 @@
|
|||||||
|
package com.aizuda.snailjob.server.mapper;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.JobLogMessageMapper;
|
||||||
|
import com.aizuda.snailjob.template.datasource.persistence.po.JobLogMessage;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试 message 字段超4K长度的CLOB插入
|
||||||
|
*/
|
||||||
|
@SpringBootTest
|
||||||
|
public class JobLogMessageMapperTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JobLogMessageMapper jobLogMessageMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_insertBatch() {
|
||||||
|
List<JobLogMessage> jobLogMessages = new ArrayList<>();
|
||||||
|
|
||||||
|
JobLogMessage jobLogMessage1 = new JobLogMessage();
|
||||||
|
jobLogMessage1.setJobId(1L);
|
||||||
|
jobLogMessage1.setNamespaceId("dev");
|
||||||
|
jobLogMessage1.setTaskId(1L);
|
||||||
|
jobLogMessage1.setGroupName("ruoyi_group");
|
||||||
|
jobLogMessage1.setTaskBatchId(1L);
|
||||||
|
jobLogMessage1.setRealTime(1725323299365L);
|
||||||
|
jobLogMessage1.setMessage(generateMessage());
|
||||||
|
jobLogMessage1.setLogNum(1);
|
||||||
|
jobLogMessages.add(jobLogMessage1);
|
||||||
|
|
||||||
|
JobLogMessage jobLogMessage2 = new JobLogMessage();
|
||||||
|
jobLogMessage2.setJobId(2L);
|
||||||
|
jobLogMessage2.setNamespaceId("dev");
|
||||||
|
jobLogMessage2.setTaskId(2L);
|
||||||
|
jobLogMessage2.setGroupName("ruoyi_group");
|
||||||
|
jobLogMessage2.setTaskBatchId(1L);
|
||||||
|
jobLogMessage2.setRealTime(1725323299365L);
|
||||||
|
jobLogMessage2.setMessage(generateMessage());
|
||||||
|
jobLogMessage2.setLogNum(2);
|
||||||
|
jobLogMessages.add(jobLogMessage2);
|
||||||
|
|
||||||
|
jobLogMessageMapper.insertBatch(jobLogMessages);
|
||||||
|
}
|
||||||
|
|
||||||
|
String generateMessage() {
|
||||||
|
return RandomUtil.randomString(5_000_0000);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package com.aizuda.snailjob.server.mapper;
|
||||||
|
|
||||||
|
import cn.hutool.core.lang.UUID;
|
||||||
|
import cn.hutool.core.util.RandomUtil;
|
||||||
|
import com.aizuda.snailjob.template.datasource.persistence.mapper.RetryTaskLogMessageMapper;
|
||||||
|
import com.aizuda.snailjob.template.datasource.persistence.po.RetryTaskLogMessage;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试 message 字段超4K长度的CLOB插入
|
||||||
|
*/
|
||||||
|
@SpringBootTest
|
||||||
|
public class RetryTaskLogMessageMapperTest {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private RetryTaskLogMessageMapper retryTaskLogMessageMapper;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test_insertBatch() {
|
||||||
|
List<RetryTaskLogMessage> retryTaskLogMessages = new ArrayList<>();
|
||||||
|
|
||||||
|
RetryTaskLogMessage retryTaskLogMessage1 = new RetryTaskLogMessage();
|
||||||
|
retryTaskLogMessage1.setNamespaceId("dev");
|
||||||
|
retryTaskLogMessage1.setGroupName("ruoyi_group");
|
||||||
|
retryTaskLogMessage1.setRealTime(1725323299365L);
|
||||||
|
retryTaskLogMessage1.setMessage(generateMessage());
|
||||||
|
retryTaskLogMessage1.setLogNum(1);
|
||||||
|
retryTaskLogMessage1.setUniqueId(UUID.fastUUID().toString());
|
||||||
|
retryTaskLogMessages.add(retryTaskLogMessage1);
|
||||||
|
|
||||||
|
RetryTaskLogMessage retryTaskLogMessage2 = new RetryTaskLogMessage();
|
||||||
|
retryTaskLogMessage2.setNamespaceId("dev");
|
||||||
|
retryTaskLogMessage2.setGroupName("ruoyi_group");
|
||||||
|
retryTaskLogMessage2.setRealTime(1725323299365L);
|
||||||
|
retryTaskLogMessage2.setMessage(generateMessage());
|
||||||
|
retryTaskLogMessage2.setLogNum(1);
|
||||||
|
retryTaskLogMessage2.setUniqueId(UUID.fastUUID().toString());
|
||||||
|
retryTaskLogMessages.add(retryTaskLogMessage2);
|
||||||
|
|
||||||
|
retryTaskLogMessageMapper.insertBatch(retryTaskLogMessages);
|
||||||
|
}
|
||||||
|
|
||||||
|
String generateMessage() {
|
||||||
|
return RandomUtil.randomString(5_000_0000);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user