| 
														
															@@ -3,27 +3,33 @@ package com.tzld.piaoquan.recommend.server.service; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.alibaba.fastjson.JSONObject; 
														 | 
														
														 | 
														
															 import com.alibaba.fastjson.JSONObject; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.aliyun.odps.data.Record; 
														 | 
														
														 | 
														
															 import com.aliyun.odps.data.Record; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import com.tzld.piaoquan.recommend.server.common.base.Constant; 
														 | 
														
														 | 
														
															 import com.tzld.piaoquan.recommend.server.common.base.Constant; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import com.tzld.piaoquan.recommend.server.util.ODPSManager; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import com.tzld.piaoquan.recommend.server.service.odps.ODPSManager; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import lombok.extern.slf4j.Slf4j; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import org.springframework.beans.factory.annotation.Autowired; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.data.redis.core.RedisTemplate; 
														 | 
														
														 | 
														
															 import org.springframework.data.redis.core.RedisTemplate; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import org.springframework.scheduling.annotation.Scheduled; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.stereotype.Component; 
														 | 
														
														 | 
														
															 import org.springframework.stereotype.Component; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.springframework.util.CollectionUtils; 
														 | 
														
														 | 
														
															 import org.springframework.util.CollectionUtils; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import javax.annotation.Resource; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.List; 
														 | 
														
														 | 
														
															 import java.util.List; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import java.util.concurrent.TimeUnit; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.util.stream.Collectors; 
														 | 
														
														 | 
														
															 import java.util.stream.Collectors; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 /** 
														 | 
														
														 | 
														
															 /** 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  * @author sunxy 
														 | 
														
														 | 
														
															  * @author sunxy 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  */ 
														 | 
														
														 | 
														
															  */ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 @Component 
														 | 
														
														 | 
														
															 @Component 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+@Slf4j 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 public class SyncFlowPoolRecentTopVideoJob { 
														 | 
														
														 | 
														
															 public class SyncFlowPoolRecentTopVideoJob { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    @Resource 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private ODPSManager odpsManager; 
														 | 
														
														 | 
														
															     private ODPSManager odpsManager; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    @Resource 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private RedisTemplate<String, Object> redisTemplate; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Autowired 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    private RedisTemplate<String, String> redisTemplate; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    // 每个小时的20分执行 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    @Scheduled(cron = "0 20 * * * ? ") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     public void syncFlowPoolRecentTopVideo() { 
														 | 
														
														 | 
														
															     public void syncFlowPoolRecentTopVideo() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 执行 ODPS Sql,获取数据 
														 | 
														
														 | 
														
															         // 执行 ODPS Sql,获取数据 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<Long> videoIds = queryTopVideoIdsByLast6Hour(100); 
														 | 
														
														 | 
														
															         List<Long> videoIds = queryTopVideoIdsByLast6Hour(100); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -31,12 +37,13 @@ public class SyncFlowPoolRecentTopVideoJob { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             return; 
														 | 
														
														 | 
														
															             return; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         // 将数据写入 Redis 
														 | 
														
														 | 
														
															         // 将数据写入 Redis 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        redisTemplate.opsForValue().set(Constant.FLOW_POOL_RECENT_TOP_VIDEO_REDIS_KEY, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                JSONObject.toJSONString(videoIds)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        redisTemplate.opsForValue().set(Constant.FLOW_POOL_LAST_24_HOUR_VIDEO_REDIS_KEY, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                JSONObject.toJSONString(videoIds), 2, TimeUnit.DAYS); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     private List<Long> queryTopVideoIdsByLast6Hour(Integer topNum) { 
														 | 
														
														 | 
														
															     private List<Long> queryTopVideoIdsByLast6Hour(Integer topNum) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         String sql = "SELECT videoid FROM loghubods.flow_pool_video_info_per_hour " + 
														 | 
														
														 | 
														
															         String sql = "SELECT videoid FROM loghubods.flow_pool_video_info_per_hour " + 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                "WHERE dt = '" + odpsManager.getNowHour() + "' " + 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 "ORDER BY 1d_return_cnt DESC LIMIT " + topNum + ";"; 
														 | 
														
														 | 
														
															                 "ORDER BY 1d_return_cnt DESC LIMIT " + topNum + ";"; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<Record> records = odpsManager.query(sql); 
														 | 
														
														 | 
														
															         List<Record> records = odpsManager.query(sql); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if (records == null || records.size() == 0) { 
														 | 
														
														 | 
														
															         if (records == null || records.size() == 0) { 
														 |