liqian 3 rokov pred
rodič
commit
8ef11f0078
4 zmenil súbory, kde vykonal 19 pridanie a 8 odobranie
  1. 8 2
      bottom_videos.py
  2. 4 1
      config.py
  3. 3 2
      rov_train.py
  4. 4 3
      utils.py

+ 8 - 2
bottom_videos.py

@@ -4,7 +4,7 @@ import json
 import traceback
 import os
 
-from utils import execute_sql_from_odps, request_post
+from utils import execute_sql_from_odps, request_post, update_video_w_h_rate
 from db_helper import RedisHelper
 from config import set_config
 from log import Log
@@ -62,9 +62,15 @@ def update_bottom_videos():
         redis_helper.remove_by_rank_from_zset(key_name=config_.BOTTOM_KEY_NAME, start=config_.BOTTOM_NUM, stop=-1)
         # 移除bottom key的过期时间,将其转换为永久状态
         redis_helper.persist_key(key_name=config_.BOTTOM_KEY_NAME)
-
         log_.info('{} update bottom videos success!, video nums = {}'.format(now_date, len(videos)))
 
+        # 更新视频的宽高比数据
+        video_ids = redis_helper.get_data_zset_with_index(key_name=config_.BOTTOM_KEY_NAME, start=0, end=-1)
+        if video_ids:
+            update_video_w_h_rate(video_ids=video_ids,
+                                  key_name=config_.W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME['bottom_last'])
+            log_.info('update video w_h_rate to redis finished!')
+
         # 获取今日兜底视频的json,并存入redis
         video_json_list = []
         for i in range(0, len(video_id_list)//10):

+ 4 - 1
config.py

@@ -63,7 +63,10 @@ class BaseConfig(object):
     ROV_SCORE_D = 0.001
 
     # width : height > 1 的视频列表 redis key, zset存储,value为videoId,score为w_h_rate
-    W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME = 'com.weiqu.video.w.h.rate.1.item'
+    W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME = {
+        'rov_recall': 'com.weiqu.video.rov.w.h.rate.1.item',  # rov召回池视频
+        'bottom_last': 'com.weiqu.video.bottom.last.w.h.rate.1.item'  # 二次兜底视频
+    }
 
 
 class DevelopmentConfig(BaseConfig):

+ 3 - 2
rov_train.py

@@ -10,7 +10,7 @@ from sklearn.metrics import mean_absolute_error, r2_score, mean_absolute_percent
 
 from config import set_config
 from utils import read_from_pickle, write_to_pickle, data_normalization, \
-    request_post, filter_video_status, get_video_w_h_rate
+    request_post, filter_video_status, update_video_w_h_rate
 from log import Log
 from db_helper import RedisHelper, MysqlHelper
 
@@ -217,7 +217,8 @@ def predict():
 
     # 更新视频的宽高比数据
     if video_ids:
-        get_video_w_h_rate(video_ids=video_ids)
+        update_video_w_h_rate(video_ids=video_ids,
+                              key_name=config_.W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME['rov_recall'])
         log_.info('update video w_h_rate to redis finished!')
 
 

+ 4 - 3
utils.py

@@ -171,10 +171,11 @@ def filter_video_status(video_ids):
     return filtered_videos
 
 
-def get_video_w_h_rate(video_ids):
+def update_video_w_h_rate(video_ids, key_name):
     """
     获取横屏视频的宽高比,并存入redis中 (width/height>1)
     :param video_ids: videoId列表 type-list
+    :param key_name: redis key
     :return: None
     """
     # 获取数据
@@ -198,10 +199,10 @@ def get_video_w_h_rate(video_ids):
         info_data[int(video_id)] = float(w_h_rate)
     redis_helper = RedisHelper()
     # 删除旧数据
-    redis_helper.del_keys(key_name=config_.W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME)
+    redis_helper.del_keys(key_name=key_name)
     # 写入新数据
     if len(info_data) > 0:
-        redis_helper.add_data_with_zset(key_name=config_.W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME, data=info_data)
+        redis_helper.add_data_with_zset(key_name=key_name, data=info_data)
 
 
 if __name__ == '__main__':