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"> | ||||
|         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 | ||||
|         <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) | ||||
|             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"> | ||||
|         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 | ||||
|         <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) | ||||
|             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,19 +3,19 @@ | ||||
| <mapper namespace="com.aizuda.snailjob.template.datasource.persistence.mapper.RetryTaskLogMessageMapper"> | ||||
| 
 | ||||
|     <insert id="insertBatch" parameterType="java.util.List"> | ||||
|         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 | ||||
|                     #{item.namespaceId}, | ||||
|                     #{item.groupName}, | ||||
|                     #{item.uniqueId}, | ||||
|                     #{item.logNum}, | ||||
|                     #{item.message}, | ||||
|                     #{item.createDt}, | ||||
|                     #{item.realTime} | ||||
|                 FROM DUAL | ||||
|             </foreach> | ||||
|         <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) | ||||
|             VALUES ( | ||||
|                 #{item.namespaceId}, | ||||
|                 #{item.groupName}, | ||||
|                 #{item.uniqueId}, | ||||
|                 #{item.logNum}, | ||||
|                 #{item.message}, | ||||
|                 #{item.createDt}, | ||||
|                 #{item.realTime} | ||||
|             ) | ||||
|         </foreach> | ||||
|     </insert> | ||||
| 
 | ||||
|     <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
	 dhb52
						dhb52