浏览代码

Merge branch 'debug-redis' into test

liqian 3 年之前
父节点
当前提交
9fa0a05da2
共有 4 个文件被更改,包括 24 次插入13 次删除
  1. 1 1
      config.py
  2. 14 6
      db_helper.py
  3. 2 2
      utils.py
  4. 7 4
      video_recall.py

+ 1 - 1
config.py

@@ -19,7 +19,7 @@ class BaseConfig(object):
     # 前k个从ROV召回池中获取视频
     K = 3
     # 从流量池获取视频的概率设置
-    P = 0.3
+    P = 0
 
     # ROV召回池redis key前缀,完整格式:com.weiqu.video.recall.hot.item.score.{date}
     RECALL_KEY_NAME_PREFIX = 'com.weiqu.video.recall.hot.item.score.'

+ 14 - 6
db_helper.py

@@ -170,8 +170,15 @@ class RedisHelper(object):
         if not conn.exists(key_name):
             # key不存在
             return None
-        data = conn.sscan(key_name)
-        return data[1]
+        data = []
+        cursor = 0
+        while True:
+            cur, temp = conn.sscan(key_name, cursor=cursor, count=2000)
+            data.extend(temp)
+            if cur == 0:
+                break
+            cursor = cur
+        return list(set(data))
 
     def add_data_with_set(self, key_name, values, expire_time=30*60):
         """
@@ -291,7 +298,8 @@ if __name__ == '__main__':
     # print(len(data))
     # key_name = 'com.weiqu.video.hot.recommend.previewed.4.weixin_openid_otjoB5VG780SB4aVjYqBBNLb - X6M'
     # values = (6134455, 9772930, 9912678, 9901969, 9926876, 9904203, 2384831, 9932272, 9737653, 9925240)
-    key_name = 'com.weiqu.video.hot.recommend.previewed.4.weixin_openid_otjoB5Q2b - PuUKPKVDLXMa62P_zU'
-    values = (9902612, 9905573, 9928264, 9932148, 9809440, 9919900, 6093379, 9917093, 9793537, 9814345)
-    redis_helper.add_data_with_set(key_name=key_name, values=values, expire_time=30 * 60)
-
+    key_name = 'com.weiqu.video.hot.recommend.previewed.4.abcd1'
+    # values = (9902612, 9905573, 9928264, 9932148, 9809440, 9919900, 6093379, 9917093, 9793537, 9814345)
+    # redis_helper.add_data_with_set(key_name=key_name, values=values, expire_time=30 * 60)
+    res = redis_helper.get_data_from_set(key_name=key_name)
+    print(res)

+ 2 - 2
utils.py

@@ -122,8 +122,8 @@ class FilterVideos(object):
         st_pre = time.time()
         filtered_pre_result = self.filter_video_previewed(self.video_ids)
         et_pre = time.time()
-        log_.info('filter by previewed: app_type = {}, result = {}, execute time = {}ms'.format(
-            self.app_type, filtered_pre_result, (et_pre - st_pre) * 1000))
+        log_.info('filter by previewed: app_type = {}, mid = {}, uid = {}, result = {}, execute time = {}ms'.format(
+            self.app_type, self.mid, self.uid, filtered_pre_result, (et_pre - st_pre) * 1000))
         if not filtered_pre_result:
             return None
 

+ 7 - 4
video_recall.py

@@ -40,7 +40,7 @@ class PoolRecall(object):
             top_video_ids, top_video_result = [], []
         else:
             top_video_ids, top_video_result = self.get_top_videos()
-            log_.info('top video result = {}'.format(top_video_ids))
+            log_.info('===top video result = {}'.format(top_video_ids))
 
         # 获取修改过rov的视频
         update_rov_video_ids, update_rov_result = self.get_update_rov_videos()
@@ -388,13 +388,16 @@ class PoolRecall(object):
             video_ids = []
             video_info = {}
             for item in eval(data):
-                # log_.info('=== item === {}'.format(item))
+                # log_.info('=== uid: {},  item === {}'.format(self.uid, item))
                 video_id = int(item['videoId'])
                 # 判断 视频推荐区域与用户地址信息 是否匹配,市级别
                 city_code_list = item['cityCode'].split(',')
+                # log_.info('=== uid: {},  city_code_list: {},{}, cityCode: {},{} === '.format(
+                #     self.uid, city_code_list, type(city_code_list[0]), self.client_info.get('cityCode'),
+                #     type(self.client_info.get('cityCode'))))
                 if self.client_info.get('cityCode') in city_code_list or config_.ALL_AREA_CODE in city_code_list:
-                    # log_.info('===2=== {}, ===3=== video_id: {}, cityCode: {}'.format(
-                    #     self.client_info.get('cityCode'), video_id, city_code_list))
+                    # log_.info('=== uid: {}, ===2=== {}, ===3=== video_id: {}, cityCode: {}'.format(
+                    #     self.uid, self.client_info.get('cityCode'), video_id, city_code_list))
                     if video_id in video_ids and item['score'] > video_info[video_id].get('score'):
                         # 如果video_id有重复,score保留大分值
                         video_info[video_id] = {'score': item['score'], 'cityCode': city_code_list}