Browse Source

天津迁移代码优化提交 PengDi@2021/1/18

pengdi@zoniot.com 4 years ago
parent
commit
ff9627830a

+ 10 - 0
meter-reading-common/src/main/java/com/huaxu/zoniot/config/JobConfiguration.java

@@ -21,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.core.task.SimpleAsyncTaskExecutor;
+import org.springframework.core.task.TaskExecutor;
 
 import java.util.Map;
 
@@ -81,9 +83,16 @@ public class JobConfiguration implements StepExecutionListener {
                 .skip(ServiceException.class)
                 .skipLimit(Integer.MAX_VALUE)
                 .listener(migrateJobSkipListener)
+                .taskExecutor(taskExecutor())
+                .throttleLimit(8)
                 .build();
     }
 
+    @Bean
+    public TaskExecutor taskExecutor(){
+        return new SimpleAsyncTaskExecutor("spring_batch");
+    }
+
     @Bean
     @StepScope
     public CommonFileItemReader<WaterMigrateFileItemDto> migrateFileItemItemReader() {
@@ -91,6 +100,7 @@ public class JobConfiguration implements StepExecutionListener {
         return new CommonFileItemReader<>(WaterMigrateFileItemDto.class,filePath);
     }
 
+
     @Override
     public void beforeStep(StepExecution stepExecution) {
         parameterMap = stepExecution.getJobParameters().getParameters();

+ 1 - 1
meter-reading-common/src/main/resources/application-common-sit.properties

@@ -86,7 +86,7 @@ spring.datasource.schema=classpath:/org/springframework/batch/core/schema-mysql.
 # 项目启动时执行建表 SQL
 spring.batch.initialize-schema=always
 # 每次执行的批大小
-spring.batch.chunk.size=100
+spring.batch.chunk.size=500
 #########################################业务配置############################################
 #定义每个任务的数据集大小
 task.chunk.size=2000

+ 2 - 1
meter-reading-tianjin/pom.xml

@@ -11,11 +11,12 @@
     </parent>
     <groupId>com.huaxu.zoniot</groupId>
     <artifactId>meter-reading-tianjin</artifactId>
-    <version>1.0-SNAPSHOT</version>
+    <version>1.0</version>
     <description>津南抄表集成与迁移工程</description>
     <properties>
         <maven.build.timestamp.format>yyyyMMdd</maven.build.timestamp.format>
         <java.version>1.8</java.version>
+        <skipTests>true</skipTests>
     </properties>
 
     <dependencies>

+ 2 - 0
meter-reading-tianjin/src/main/java/com/huaxu/zoniot/web/MigrateController.java

@@ -9,6 +9,7 @@ import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -36,6 +37,7 @@ public class MigrateController {
 
     @GetMapping("/migrate")
     @ApiOperation(value = "档案迁移接口")
+    @Async
     public String migrateFile(
             @ApiParam(value = "文件名称", required = true)@RequestParam String fileName ,
             @ApiParam(value = "文件路径", required = true) @RequestParam String path) {