Browse Source

Merge branch 'debug' into pre-master

liqian 3 years ago
parent
commit
6d91d94a83
2 changed files with 15 additions and 12 deletions
  1. 3 3
      utils.py
  2. 12 9
      video_recall.py

+ 3 - 3
utils.py

@@ -145,7 +145,7 @@ class FilterVideos(object):
         if not filtered_viewed_result:
         if not filtered_viewed_result:
             return None
             return None
         else:
         else:
-            return filtered_viewed_result
+            return [int(video_id) for video_id in filtered_viewed_result]
 
 
     def filter_video_previewed(self, video_ids):
     def filter_video_previewed(self, video_ids):
         """
         """
@@ -160,7 +160,7 @@ class FilterVideos(object):
         pe_videos_list = redis_helper.get_data_from_set(key_name)
         pe_videos_list = redis_helper.get_data_from_set(key_name)
         if not pe_videos_list:
         if not pe_videos_list:
             return video_ids
             return video_ids
-        pe_videos = [eval(video) for video in pe_videos_list]
+        pe_videos = [int(video) for video in pe_videos_list]
         filtered_videos = [video_id for video_id in video_ids if video_id not in pe_videos]
         filtered_videos = [video_id for video_id in video_ids if video_id not in pe_videos]
         return filtered_videos
         return filtered_videos
 
 
@@ -195,7 +195,7 @@ class FilterVideos(object):
 
 
         hologres_helper = HologresHelper()
         hologres_helper = HologresHelper()
         data = hologres_helper.get_data(sql=sql)
         data = hologres_helper.get_data(sql=sql)
-        filtered_videos = [temp[0] for temp in data]
+        filtered_videos = [int(temp[0]) for temp in data]
         return filtered_videos
         return filtered_videos
 
 
     def filter_video_viewed(self, video_ids, types=(1,)):
     def filter_video_viewed(self, video_ids, types=(1,)):

+ 12 - 9
video_recall.py

@@ -73,9 +73,9 @@ class PoolRecall(object):
             debug_tm_e = time.time()
             debug_tm_e = time.time()
             if filtered_result:
             if filtered_result:
                 # 添加视频源参数 pushFrom, abCode
                 # 添加视频源参数 pushFrom, abCode
-                temp_result = [{'videoId': item, 'rovScore': video_score[item],
+                temp_result = [{'videoId': int(item), 'rovScore': video_score[int(item)],
                                 'pushFrom': 'recall_pool', 'abCode': self.ab_code}
                                 'pushFrom': 'recall_pool', 'abCode': self.ab_code}
-                               for item in filtered_result]
+                               for item in filtered_result if video_score.get(int(item)) is not None]
                 rov_pool_recall_result.extend(temp_result)
                 rov_pool_recall_result.extend(temp_result)
             else:
             else:
                 # 将此次获取的末位视频id同步刷新到Redis中,方便下次快速定位到召回位置,过期时间为1天
                 # 将此次获取的末位视频id同步刷新到Redis中,方便下次快速定位到召回位置,过期时间为1天
@@ -113,7 +113,7 @@ class PoolRecall(object):
             video_score = {}
             video_score = {}
             for value in data:
             for value in data:
                 video_id, flow_pool = value[0].split('-')
                 video_id, flow_pool = value[0].split('-')
-                video_id = eval(video_id)
+                video_id = int(video_id)
                 if video_id not in video_ids:
                 if video_id not in video_ids:
                     video_ids.append(video_id)
                     video_ids.append(video_id)
                     video_score[video_id] = value[1]
                     video_score[video_id] = value[1]
@@ -136,18 +136,20 @@ class PoolRecall(object):
                 #check_result, error_flag = self.check_video_counts(video_ids=filtered_result, flow_pool_mapping=video_mapping)
                 #check_result, error_flag = self.check_video_counts(video_ids=filtered_result, flow_pool_mapping=video_mapping)
 
 
                 for item in check_result:
                 for item in check_result:
-                    if item[0] not in flow_pool_recall_videos:
+                    video_id = int(item[0])
+                    flow_pool = item[1]
+                    if video_id not in flow_pool_recall_videos:
                         # 取其中一个 flow_pool 作为召回结果
                         # 取其中一个 flow_pool 作为召回结果
                         # 添加视频源参数 pushFrom, abCode
                         # 添加视频源参数 pushFrom, abCode
                         flow_pool_recall_result.append(
                         flow_pool_recall_result.append(
-                            {'videoId': int(item[0]), 'flowPool': item[1],
-                             'rovScore': video_score[item[0]], 'pushFrom': 'flow_pool', 'abCode': self.ab_code}
+                            {'videoId': video_id, 'flowPool': flow_pool,
+                             'rovScore': video_score[video_id], 'pushFrom': 'flow_pool', 'abCode': self.ab_code}
                         )
                         )
                         # flow_pool_recall_result.append(
                         # flow_pool_recall_result.append(
                         #     {'videoId': item[0], 'flowPool': item[1], 'distributeCount': item[2],
                         #     {'videoId': item[0], 'flowPool': item[1], 'distributeCount': item[2],
                         #      'rovScore': video_score[item[0]], 'pushFrom': 'flow_pool', 'abCode': self.ab_code}
                         #      'rovScore': video_score[item[0]], 'pushFrom': 'flow_pool', 'abCode': self.ab_code}
                         # )
                         # )
-                        flow_pool_recall_videos.append(item[0])
+                        flow_pool_recall_videos.append(video_id)
                 et_check = time.time()
                 et_check = time.time()
                 log_.info('check result: result = {}, execute time = {}ms'.format(
                 log_.info('check result: result = {}, execute time = {}ms'.format(
                     check_result, (et_check - st_check) * 1000))
                     check_result, (et_check - st_check) * 1000))
@@ -172,7 +174,8 @@ class PoolRecall(object):
         videos = []
         videos = []
         check_result = []
         check_result = []
         for video_id in video_ids:
         for video_id in video_ids:
-            for flow_pool in flow_pool_mapping[video_id]:
+            video_id = int(video_id)
+            for flow_pool in flow_pool_mapping.get(video_id, []):
                 # 判断是否有本地分发记录
                 # 判断是否有本地分发记录
                 cur_count = get_videos_local_distribute_count(video_id=video_id, flow_pool=flow_pool)
                 cur_count = get_videos_local_distribute_count(video_id=video_id, flow_pool=flow_pool)
                 # 无记录
                 # 无记录
@@ -186,7 +189,7 @@ class PoolRecall(object):
                     value = '{}-{}'.format(video_id, flow_pool)
                     value = '{}-{}'.format(video_id, flow_pool)
                     self.redis_helper.remove_value_from_zset(key_name=flow_pool_key, value=value)
                     self.redis_helper.remove_value_from_zset(key_name=flow_pool_key, value=value)
         # 本次视频都有本地记录
         # 本次视频都有本地记录
-        if len(video_ids) == 0:
+        if len(videos) == 0:
             error_flag = False
             error_flag = False
             return check_result, error_flag
             return check_result, error_flag