diff --git a/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobLogMessageMapper.xml b/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobLogMessageMapper.xml index e4d870471..86e9a97fd 100644 --- a/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobLogMessageMapper.xml +++ b/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobLogMessageMapper.xml @@ -3,10 +3,10 @@ - INSERT INTO sj_job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id, - log_num, message, create_dt, real_time) - - SELECT + + INSERT INTO sj_job_log_message (namespace_id, group_name, job_id, task_batch_id, task_id, + log_num, message, create_dt, real_time) + VALUES ( #{item.namespaceId}, #{item.groupName}, #{item.jobId}, @@ -16,7 +16,7 @@ #{item.message}, #{item.createDt}, #{item.realTime} - FROM DUAL + ) diff --git a/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobSummaryMapper.xml b/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobSummaryMapper.xml index 55b6961f6..f62617c22 100644 --- a/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobSummaryMapper.xml +++ b/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/JobSummaryMapper.xml @@ -3,10 +3,10 @@ - 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) - - SELECT + + 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) + VALUES ( #{item.namespaceId}, #{item.groupName}, #{item.businessId}, @@ -19,12 +19,12 @@ #{item.stopReason}, #{item.cancelNum}, #{item.cancelReason} - FROM DUAL + ) - + UPDATE sj_job_summary SET success_num = #{item.successNum}, fail_num = #{item.failNum}, diff --git a/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/RetryTaskLogMessageMapper.xml b/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/RetryTaskLogMessageMapper.xml index c37e50cbb..cb9e73b39 100644 --- a/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/RetryTaskLogMessageMapper.xml +++ b/snail-job-datasource/snail-job-oracle-datasource/src/main/resources/oracle/mapper/RetryTaskLogMessageMapper.xml @@ -3,19 +3,19 @@ - INSERT INTO sj_retry_task_log_message (namespace_id, group_name, unique_id, log_num, message, - create_dt, real_time) - - SELECT - #{item.namespaceId}, - #{item.groupName}, - #{item.uniqueId}, - #{item.logNum}, - #{item.message}, - #{item.createDt}, - #{item.realTime} - FROM DUAL - + + INSERT INTO sj_retry_task_log_message (namespace_id, group_name, unique_id, log_num, message, + create_dt, real_time) + VALUES ( + #{item.namespaceId}, + #{item.groupName}, + #{item.uniqueId}, + #{item.logNum}, + #{item.message}, + #{item.createDt}, + #{item.realTime} + ) + diff --git a/snail-job-server/snail-job-server-starter/src/test/java/com/aizuda/snailjob/server/mapper/JobLogMessageMapperTest.java b/snail-job-server/snail-job-server-starter/src/test/java/com/aizuda/snailjob/server/mapper/JobLogMessageMapperTest.java new file mode 100644 index 000000000..904cc9513 --- /dev/null +++ b/snail-job-server/snail-job-server-starter/src/test/java/com/aizuda/snailjob/server/mapper/JobLogMessageMapperTest.java @@ -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 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); + } +} \ No newline at end of file diff --git a/snail-job-server/snail-job-server-starter/src/test/java/com/aizuda/snailjob/server/mapper/RetryTaskLogMessageMapperTest.java b/snail-job-server/snail-job-server-starter/src/test/java/com/aizuda/snailjob/server/mapper/RetryTaskLogMessageMapperTest.java new file mode 100644 index 000000000..0fe9b1586 --- /dev/null +++ b/snail-job-server/snail-job-server-starter/src/test/java/com/aizuda/snailjob/server/mapper/RetryTaskLogMessageMapperTest.java @@ -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 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); + } +} \ No newline at end of file