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(){ 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; } } recommend-video/src/main/java/com/iplatform/recvideo/scheduler/VideoLoadTask.java
New file @@ -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; } } 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; } 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();