Browse Source

update filter_video_previewed

liqian 2 years ago
parent
commit
7fd4de09c2
2 changed files with 26 additions and 21 deletions
  1. 23 21
      recommend.py
  2. 3 0
      utils.py

+ 23 - 21
recommend.py

@@ -300,27 +300,29 @@ def update_redis_data(result, app_type, mid, last_rov_recall_key, top_K, expire_
     # ####### redis数据刷新
     try:
         # log_.info('====== update redis')
-        # 预曝光数据同步刷新到Redis, 过期时间为0.5h
-        redis_helper = RedisHelper()
-        preview_key_name = config_.PREVIEW_KEY_PREFIX + '{}.{}'.format(app_type, mid)
-        preview_video_ids = [int(item['videoId']) for item in result]
-        if preview_video_ids:
-            # log_.error('key_name = {} \n values = {}'.format(preview_key_name, tuple(preview_video_ids)))
-            redis_helper.add_data_with_set(key_name=preview_key_name, values=tuple(preview_video_ids), expire_time=30 * 60)
-            log_.info('preview redis update success!')
-
-        # 将此次获取的ROV召回池top_K末位视频id同步刷新到Redis中,方便下次快速定位到召回位置,过期时间为1天
-        rov_recall_video = [item['videoId'] for item in result[:top_K]
-                            if item['pushFrom'] == config_.PUSH_FROM['rov_recall']]
-        if len(rov_recall_video) > 0:
-            if app_type == config_.APP_TYPE['APP']:
-                key_name = config_.UPDATE_ROV_KEY_NAME_APP
-            else:
-                key_name = config_.UPDATE_ROV_KEY_NAME
-            if not redis_helper.get_score_with_value(key_name=key_name, value=rov_recall_video[-1]):
-                redis_helper.set_data_to_redis(key_name=last_rov_recall_key, value=rov_recall_video[-1],
-                                               expire_time=expire_time)
-            log_.info('last video redis update success!')
+        if mid:
+            # mid为空时,不做预曝光和定位数据更新
+            # 预曝光数据同步刷新到Redis, 过期时间为0.5h
+            redis_helper = RedisHelper()
+            preview_key_name = config_.PREVIEW_KEY_PREFIX + '{}.{}'.format(app_type, mid)
+            preview_video_ids = [int(item['videoId']) for item in result]
+            if preview_video_ids:
+                # log_.error('key_name = {} \n values = {}'.format(preview_key_name, tuple(preview_video_ids)))
+                redis_helper.add_data_with_set(key_name=preview_key_name, values=tuple(preview_video_ids), expire_time=30 * 60)
+                log_.info('preview redis update success!')
+
+            # 将此次获取的ROV召回池top_K末位视频id同步刷新到Redis中,方便下次快速定位到召回位置,过期时间为1天
+            rov_recall_video = [item['videoId'] for item in result[:top_K]
+                                if item['pushFrom'] == config_.PUSH_FROM['rov_recall']]
+            if len(rov_recall_video) > 0:
+                if app_type == config_.APP_TYPE['APP']:
+                    key_name = config_.UPDATE_ROV_KEY_NAME_APP
+                else:
+                    key_name = config_.UPDATE_ROV_KEY_NAME
+                if not redis_helper.get_score_with_value(key_name=key_name, value=rov_recall_video[-1]):
+                    redis_helper.set_data_to_redis(key_name=last_rov_recall_key, value=rov_recall_video[-1],
+                                                   expire_time=expire_time)
+                log_.info('last video redis update success!')
 
         # 将此次分发的流量池视频,对 本地分发数-1 进行记录
         if app_type not in [config_.APP_TYPE['LAO_HAO_KAN_VIDEO'], config_.APP_TYPE['ZUI_JING_QI']]:

+ 3 - 0
utils.py

@@ -234,6 +234,9 @@ class FilterVideos(object):
         :param video_ids: 需过滤的视频列表 type-list
         :return: filtered_videos  过滤后的列表  type-list
         """
+        if not self.mid:
+            # mid为空时,不做预曝光过滤
+            return video_ids
         # 根据Redis缓存中的数据过滤
         redis_helper = RedisHelper()
         # key拼接