Bladeren bron

[0924] 加快文件处理速度

taosj 5 dagen geleden
bovenliggende
commit
7e397d0334

+ 1 - 1
forecast-backend-server/pom.xml

@@ -226,7 +226,7 @@
             <artifactId>spring-boot-starter-actuator</artifactId>
         </dependency>
 
-        <!-- <dependency>-->
+        <dependency>
             <groupId>org.openjdk.nashorn</groupId>
             <artifactId>nashorn-core</artifactId>
             <version>15.4</version>

+ 1 - 1
forecast-backend-server/src/main/java/com/ufo/project/data/service/IDataFileSyncFilesService.java

@@ -40,7 +40,7 @@ public interface IDataFileSyncFilesService
      *
      * @return 待处理数据文件同步, 无待处理记录时返回null
      */
-    public DataFileSyncFiles selectFirstPending();
+    public List<DataFileSyncFiles> selectFirstPendings();
 
     /**
      * 新增待处理数据文件同步(按文件路径查重, 已存在则不插入)

+ 3 - 8
forecast-backend-server/src/main/java/com/ufo/project/data/service/impl/DataFileSyncFilesServiceImpl.java

@@ -63,15 +63,10 @@ public class DataFileSyncFilesServiceImpl implements IDataFileSyncFilesService
      * @return 待处理数据文件同步, 无待处理记录时返回null
      */
     @Override
-    public DataFileSyncFiles selectFirstPending()
+    public List<DataFileSyncFiles> selectFirstPendings()
     {
-        PageHelper.startPage(1, 1);
-        List<DataFileSyncFiles> list = dataFileSyncFilesMapper.selectPendingDataFileSyncFilesList();
-        if (list == null || list.isEmpty())
-        {
-            return null;
-        }
-        return list.get(0);
+        PageHelper.startPage(1, 5);
+        return dataFileSyncFilesMapper.selectPendingDataFileSyncFilesList();
     }
 
     /**

+ 12 - 7
forecast-backend-server/src/main/java/com/ufo/project/data/task/DataFileProcessTask.java

@@ -1,5 +1,7 @@
 package com.ufo.project.data.task;
 
+import java.util.List;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,7 +30,7 @@ public class DataFileProcessTask
     private static final Logger log = LoggerFactory.getLogger(DataFileProcessTask.class);
 
     /** 处理间隔(毫秒), 每轮结束后间隔27秒 */
-    private static final long PROCESS_INTERVAL_MILLIS = 17 * 1000L;
+    private static final long PROCESS_INTERVAL_MILLIS = 11 * 1000L;
 
     /** 默认处理器bean名称 */
     private static final String DEFAULT_PROCESSER_BEAN = "dataFileProcesserDefaltImpl";
@@ -44,15 +46,18 @@ public class DataFileProcessTask
     {
         try
         {
-            DataFileSyncFiles file = dataFileSyncFilesService.selectFirstPending();
-            if (file == null)
+            List<DataFileSyncFiles> files = dataFileSyncFilesService.selectFirstPendings();
+            if (files == null || files.isEmpty())
             {
                 return;
             }
-            markProcessing(file);
-            log.info("[DataFileProcessTask] 开始处理待同步文件, id={}, file={}, handler={}",
-                    file.getId(), file.getFile(), file.getHandler());
-            resolveProcesser(file.getHandler()).execute(file);
+            files.forEach(file ->
+            {
+                markProcessing(file);
+                log.info("[DataFileProcessTask] 开始处理待同步文件, id={}, file={}, handler={}",
+                        file.getId(), file.getFile(), file.getHandler());
+                resolveProcesser(file.getHandler()).execute(file);
+            });
         }
         catch (Exception e)
         {