| | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.io.File; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | |
| | | } |
| | | |
| | | try { |
| | | this.processOneSearchAndWrite(); |
| | | this.processOneSearchAndWrite(this.batchId); |
| | | return 0; |
| | | } catch (Exception e) { |
| | | throw new Exception("processOneSearchAndWrite(): " + e.getMessage(), e); |
| | | } |
| | | } |
| | | |
| | | private void processOneSearchAndWrite() throws Exception{ |
| | | private void processOneSearchAndWrite(String batchId) throws Exception{ |
| | | if(this.currentVideoFolderIndex >= this.videoFolderInfoList.size()){ |
| | | throw new IllegalArgumentException("currentVideoFolderIndex 越界: " + this.currentVideoFolderIndex); |
| | | } |
| | |
| | | // 每个视频的最后一张图片 |
| | | if((this.currentImageIndex + 1) >= currentVideoFolderInfo.getImageInfoSize()){ |
| | | try { |
| | | this.writeRcVideoT2(currentVideoFolderInfo); |
| | | this.writeRcVideoT2(currentVideoFolderInfo, batchId); |
| | | } catch (Exception ex){ |
| | | throw new Exception("writeRcVideoT2()执行错误:" + ex.getMessage(), ex); |
| | | } |
| | |
| | | * 分析表'rc_video_t1',并把给定视频相似记录写入第二个临时表'rc_video_t2' |
| | | * @param videoFolderInfo |
| | | */ |
| | | protected abstract void writeRcVideoT2(VideoFolderInfo videoFolderInfo); |
| | | protected abstract void writeRcVideoT2(VideoFolderInfo videoFolderInfo, String batchId); |
| | | |
| | | /** |
| | | * 分析给定批次所有视频用户推荐的视频信息,并写入表:'rc_video_user' |
| | | * @param batchId |
| | | * @param recVideoIdList 推荐视频id集合 |
| | | * @param recVideoIdList 本批次处理原始视频id集合 |
| | | */ |
| | | protected abstract void writeRcVideoUser(String batchId, List<String> recVideoIdList); |
| | | } |