From a78b76b664830a1ac691396d5cb64166c6919ff1 Mon Sep 17 00:00:00 2001
From: shikeying <shikeying@163.com>
Date: 星期五, 30 九月 2022 18:12:44 +0800
Subject: [PATCH] 视频相似度分析5

---
 recommend-video/src/main/java/com/iplatform/recvideo/VideoLoader.java                  |    4 +
 recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadScheduler.java |   57 ++++++++++++++++++++++++++++
 recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadTask.java      |   25 ++++++++++++
 recommend-video/src/test/java/com/iplatform/recvideo/VideoSimilarTest.java             |   13 ++++++
 recommend-video/src/main/java/com/iplatform/recvideo/support/DefaultVideoLoader.java   |   10 ++++
 5 files changed, 106 insertions(+), 3 deletions(-)

diff --git a/recommend-video/src/main/java/com/iplatform/recvideo/VideoLoader.java b/recommend-video/src/main/java/com/iplatform/recvideo/VideoLoader.java
index 62289d1..bd2844f 100644
--- a/recommend-video/src/main/java/com/iplatform/recvideo/VideoLoader.java
+++ b/recommend-video/src/main/java/com/iplatform/recvideo/VideoLoader.java
@@ -10,8 +10,10 @@
 
     protected final transient Logger logger = LoggerFactory.getLogger(this.getClass());
 
-    public void startup(String videoDataFolder, String batchId, boolean testMode){
+//    protected String videoDataFolder = null;
 
+    public void startup(boolean testMode){
+//        this.videoDataFolder = videoDataFolder;
     }
 
     public void destroy(){
diff --git a/recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadScheduler.java b/recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadScheduler.java
index 15886e7..2735f65 100644
--- a/recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadScheduler.java
+++ b/recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadScheduler.java
@@ -1,17 +1,74 @@
 package com.iplatform.recvideo.scheduler;
 
+import com.iplatform.core.BeanContextAware;
+import com.iplatform.recvideo.VideoLoader;
 import com.iplatform.recvideo.VideoScheduler;
+import com.iplatform.recvideo.service.VideoLoaderServiceImpl;
+import com.iplatform.recvideo.support.DefaultVideoLoader;
+import com.walker.connector.Address;
+import com.walker.connector.support.DatabaseConnector;
+import com.walker.connector.util.ConnectorUtils;
 import com.walker.store.AbstractStore;
 import com.walker.store.task.GatherTask;
 
+/**
+ * 鐭棰戦噰闆�(鍔犺浇鎷疯礉)璋冨害浠诲姟瀹炵幇銆�
+ * @author 鏃跺厠鑻�
+ * @date 2022-09-30
+ */
 public class VideoLoadScheduler extends VideoScheduler {
+
+    private VideoLoader videoLoader= null;
+    private int failedCount = 0;
+
+    private Address srcAddress; // 浠庝笟鍔$郴缁熸暟鎹簱鍔犺浇瑙嗛闆嗗悎璁板綍
 
     public VideoLoadScheduler(int id, String name){
         super(id, name);
+        srcAddress = new Address();
+        srcAddress.setUrl("127.0.0.1");
+        srcAddress.setPort(3306);
+        srcAddress.setAuthentication("root");
+        srcAddress.setCertification("123456");
     }
 
     @Override
     protected GatherTask providerTask(AbstractStore store) {
         return null;
     }
+
+    @Override
+    protected Object onProcess(Object[] inputParams) throws Exception {
+        if(this.videoLoader == null){
+            DefaultVideoLoader defaultVideoLoader = new DefaultVideoLoader();
+            defaultVideoLoader.setVideoLoaderService(BeanContextAware.getBeanByType(VideoLoaderServiceImpl.class));
+            defaultVideoLoader.setDatabaseConnector(this.createMySqlConnector(this.srcAddress));
+            defaultVideoLoader.startup(false);
+            this.videoLoader = defaultVideoLoader;
+            logger.debug("鍒涘缓'DefaultVideoLoader': " + defaultVideoLoader.getClass());
+        }
+
+        try{
+            int result = this.videoLoader.execute();
+            if(result == 1){
+                logger.info("鎴愬姛鎵ц涓�娆$煭瑙嗛閲囬泦");
+                return SUCCESS;
+            }
+            logger.debug("videoLoader.execute() = -1锛岀嚎绋嬪噯澶囦紤鐪�");
+            return null;
+        }catch (Exception ex){
+            logger.error("VideoLoader.execute()鎶ラ敊: " + ex.getMessage(), ex);
+            this.failedCount ++;
+            if(this.failedCount > 3){
+                // 濡傛灉鎶ラ敊瓒呰繃澶氭锛岃繑鍥炵┖锛岃绾跨▼浼戠湢涓�涓�
+                this.failedCount = 0;
+            }
+            return null;
+        }
+    }
+
+    private DatabaseConnector createMySqlConnector(Address address){
+        DatabaseConnector connector = ConnectorUtils.createMySQLConnector(address);
+        return connector;
+    }
 }
diff --git a/recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadTask.java b/recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadTask.java
new file mode 100644
index 0000000..10744f6
--- /dev/null
+++ b/recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadTask.java
@@ -0,0 +1,25 @@
+package com.iplatform.recvideo.scheduler;
+
+import com.walker.connector.Address;
+import com.walker.store.task.GenericGatherTask;
+
+import java.util.List;
+
+@Deprecated
+public class VideoLoadTask extends GenericGatherTask {
+
+    public VideoLoadTask(String name, Address address){
+        super(name, address);
+
+    }
+
+    @Override
+    protected Object execute(String srcName, String createTableSQL, Object parameter, List<Object> data) {
+        return null;
+    }
+
+    @Override
+    protected List<Object> transferResultData(List<Object> resultList) {
+        return resultList;
+    }
+}
diff --git a/recommend-video/src/main/java/com/iplatform/recvideo/support/DefaultVideoLoader.java b/recommend-video/src/main/java/com/iplatform/recvideo/support/DefaultVideoLoader.java
index ad69420..7a3cd92 100644
--- a/recommend-video/src/main/java/com/iplatform/recvideo/support/DefaultVideoLoader.java
+++ b/recommend-video/src/main/java/com/iplatform/recvideo/support/DefaultVideoLoader.java
@@ -6,6 +6,7 @@
 import com.iplatform.recvideo.VideoLoadInfo;
 import com.iplatform.recvideo.VideoLoader;
 import com.iplatform.recvideo.service.VideoLoaderServiceImpl;
+import com.walker.connector.support.DatabaseConnector;
 import com.walker.infrastructure.utils.DateUtils;
 import com.walker.infrastructure.utils.NumberGenerator;
 
@@ -15,6 +16,12 @@
 public class DefaultVideoLoader extends VideoLoader {
 
     private VideoLoaderServiceImpl videoLoaderService;
+
+    private DatabaseConnector databaseConnector = null;
+
+    public void setDatabaseConnector(DatabaseConnector databaseConnector) {
+        this.databaseConnector = databaseConnector;
+    }
 
     public void setVideoLoaderService(VideoLoaderServiceImpl videoLoaderService) {
         this.videoLoaderService = videoLoaderService;
@@ -27,11 +34,12 @@
 
     @Override
     protected long acquireInitBatchId() {
-        return 0;
+        return 20210101;
     }
 
     @Override
     protected List<VideoLoadInfo> acquireLoadVideoFromDatabase(long nextBatchId) {
+        this.databaseConnector.queryForList("", new Object[]{nextBatchId});
         return null;
     }
 
diff --git a/recommend-video/src/test/java/com/iplatform/recvideo/VideoSimilarTest.java b/recommend-video/src/test/java/com/iplatform/recvideo/VideoSimilarTest.java
index d1e3849..3c7e781 100644
--- a/recommend-video/src/test/java/com/iplatform/recvideo/VideoSimilarTest.java
+++ b/recommend-video/src/test/java/com/iplatform/recvideo/VideoSimilarTest.java
@@ -3,14 +3,25 @@
 import com.iplatform.model.po.Rc_video_t1;
 import com.iplatform.recvideo.util.PythonInvokeUtils;
 import com.iplatform.recvideo.util.VideoFileUtils;
+import com.walker.infrastructure.utils.ClassUtils;
+import com.walker.scheduler.impl.TimedScheduler;
 import org.junit.Test;
 import org.springframework.web.client.RestTemplate;
 
+import java.lang.reflect.Constructor;
 import java.util.List;
 
 public class VideoSimilarTest {
 
-    @Test
+//    @Test
+    public void testSchedulerClass() throws Exception{
+        Class<?> schedulerClass = ClassUtils.forName("com.iplatform.recvideo.scheduler.VideoSearchScheduler", VideoSimilarTest.class.getClassLoader());
+        Constructor<TimedScheduler> constructor = (Constructor<TimedScheduler>)schedulerClass.getConstructor(int.class, String.class);
+        TimedScheduler listeningScheduler = constructor.newInstance(100, "test_scheduler");
+
+    }
+
+//    @Test
     public void testPythonSearch() throws Exception{
         String url = "http://121.36.40.27:12345/ai/video/search_img";
         RestTemplate restTemplate = new RestTemplate();

--
Gitblit v1.9.1