浏览代码

增加top1视频缓存

gufengshou1 1 年之前
父节点
当前提交
de6e212be1

+ 19 - 0
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/container/TopOneVideoContainer.java

@@ -1,4 +1,23 @@
 package com.tzld.piaoquan.ad.engine.service.predict.container;
 
+import com.aliyun.odps.data.Record;
+import com.tzld.piaoquan.ad.engine.service.predict.odps.ODPSClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import java.util.*;
+
+@Component
 public class TopOneVideoContainer {
+
+    @Autowired
+    ODPSClient client;
+
+    Map<Integer,List<Integer>> videoMap=new HashMap<>();
+
+    public void refreshTopVideoIdCache(){
+        List<Record> recordList=client.getCurrentTopVideoRecords();
+        for(Record record:recordList){
+
+        }
+    }
 }

+ 2 - 2
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/impl/PredictModelServiceImpl.java

@@ -107,8 +107,8 @@ public class PredictModelServiceImpl implements PredictModelService {
             return result;
         }
 
-        String[] noAdGroupWithVideoMapping=new String[0];
-        noAdGroupWithVideoMapping=((JSONArray) abtestParam.get("no_ad_mid_group_list")).toArray(noAdMidGroupList);
+
+        Map<String,List<String>> noAdGroupWithVideoMapping=(Map) abtestParam.get("no_ad_group_with_video_mapping");
 
 
         //设置信息

+ 20 - 5
ad-engine-service/src/main/java/com/tzld/piaoquan/ad/engine/service/predict/odps/ODPSClient.java

@@ -5,8 +5,11 @@ import com.aliyun.odps.account.Account;
 import com.aliyun.odps.account.AliyunAccount;
 import com.aliyun.odps.data.Record;
 import com.aliyun.odps.task.SQLTask;
+import com.tzld.piaoquan.ad.engine.commons.util.DateUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
 import java.util.*;
 @Service
 public class ODPSClient {
@@ -17,15 +20,29 @@ public class ODPSClient {
     public String odpsAAccessKey;
     @Value("${ad.odps.endpoint:http://service.cn.maxcompute.aliyun.com/api}")
     public String odpsEndpoint;
+    public static final String sqlExp="select * from top_return_videolist_hh where dt={dt};";
 
     private Odps odps;
 
+    @PostConstruct
     public void initClient(){
         Account account = new AliyunAccount(odpsAccessId, odpsAAccessKey);
         odps = new Odps(account);
         odps.setEndpoint(odpsEndpoint);
         odps.setDefaultProject("loghubods");
     }
+    public List<Record> getCurrentTopVideoRecords(){
+        List<Record> records=new ArrayList<>();
+        Instance i;
+        try {
+            i = SQLTask.run(odps, sqlExp.replace("{dt}",DateUtils.getCurrentDateStr("yyyyMMddHH")));
+            i.waitForSuccess();
+            records = SQLTask.getResult(i);
+        } catch (OdpsException e) {
+            e.printStackTrace();
+        }
+        return records;
+    }
 
 
     public static void main(String[] args) throws Exception{
@@ -34,19 +51,17 @@ public class ODPSClient {
         odps.setEndpoint("http://service.cn.maxcompute.aliyun.com/api");
         odps.setDefaultProject("loghubods");
         Instance i;
-        String sql="select * from top_return_videolist_hh where dt=2024011710;";
         try {
-            i = SQLTask.run(odps, sql);
+            i = SQLTask.run(odps, sqlExp.replace("{dt}",DateUtils.getCurrentDateStr("yyyyMMddHH")));
             i.waitForSuccess();
             List<Record> records = SQLTask.getResult(i);
             for(Record r:records){
-                System.out.println(r.get("apptype").toString());
-                System.out.println(r.get("videoid").toString());
-                System.out.println(r.get("rank").toString());
+                System.out.println(r.get("apptype").toString()+"----"+r.get("videoid").toString()+"----"+r.get("rank").toString());
                 System.out.println("-0-----------------");
             }
         } catch (OdpsException e) {
             e.printStackTrace();
         }
+        System.out.println();
     }
 }