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">
|
||||
|
||||
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
|
||||
<foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
|
||||
INSERT INTO sj_job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id,
|
||||
log_num, message, create_dt, real_time)
|
||||
<foreach collection="list" item="item" separator="UNION ALL">
|
||||
SELECT
|
||||
VALUES (
|
||||
#{item.namespaceId},
|
||||
#{item.groupName},
|
||||
#{item.jobId},
|
||||
@ -16,7 +16,7 @@
|
||||
#{item.message},
|
||||
#{item.createDt},
|
||||
#{item.realTime}
|
||||
FROM DUAL
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
@ -3,10 +3,10 @@
|
||||
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.JobSummaryMapper">
|
||||
|
||||
<insert id="insertBatch" parameterType="java.util.List" useGeneratedKeys="false">
|
||||
<foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
|
||||
INSERT INTO sj_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)
|
||||
<foreach collection="list" item="item" separator="UNION ALL">
|
||||
SELECT
|
||||
VALUES (
|
||||
#{item.namespaceId},
|
||||
#{item.groupName},
|
||||
#{item.businessId},
|
||||
@ -19,12 +19,12 @@
|
||||
#{item.stopReason},
|
||||
#{item.cancelNum},
|
||||
#{item.cancelReason}
|
||||
FROM DUAL
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
<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
|
||||
SET success_num = #{item.successNum},
|
||||
fail_num = #{item.failNum},
|
||||
|
@ -3,10 +3,10 @@
|
||||
<mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.RetryTaskLogMessageMapper">
|
||||
|
||||
<insert id="insertBatch" parameterType="java.util.List">
|
||||
<foreach collection="list" item="item" open="BEGIN" separator=";" close=";END;">
|
||||
INSERT INTO sj_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
|
||||
VALUES (
|
||||
#{item.namespaceId},
|
||||
#{item.groupName},
|
||||
#{item.uniqueId},
|
||||
@ -14,7 +14,7 @@
|
||||
#{item.message},
|
||||
#{item.createDt},
|
||||
#{item.realTime}
|
||||
FROM DUAL
|
||||
)
|
||||
</foreach>
|
||||
</insert>
|
||||
|
||||
|
@ -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