liqian преди 3 години
родител
ревизия
a69e8df1df
променени са 4 файла, в които са добавени 19 реда и са изтрити 9 реда
  1. 8 2
      bottom_videos.py
  2. 4 1
      config.py
  3. 2 2
      rov_train.py
  4. 5 4
      utils.py

+ 8 - 2
bottom_videos.py

@@ -3,7 +3,7 @@ import traceback
 import os
 import json
 
-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
@@ -44,9 +44,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! num = {}'.format(now_date, config_.BOTTOM_NUM))
 
+        # 更新视频的宽高比数据
+        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

@@ -58,7 +58,10 @@ class BaseConfig(object):
     TOP_VIDEO_LIST_KEY_NAME = 'com.weiqu.video.top.item.score.area'
 
     # 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):

+ 2 - 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
+    update_video_w_h_rate
 from log import Log
 from db_helper import RedisHelper, MysqlHelper
 
@@ -204,7 +204,7 @@ def predict_test():
     #     log_.error('notify backend fail!')
     # 更新视频的宽高比数据
     if filtered_videos:
-        get_video_w_h_rate(video_ids=filtered_videos)
+        update_video_w_h_rate(video_ids=filtered_videos, key_name=config_.W_H_RATE_UP_1_VIDEO_LIST_KEY_NAME['rov_recall'])
         log_.info('update video w_h_rate to redis finished!')
 
 

+ 5 - 4
utils.py

@@ -160,10 +160,11 @@ def send_msg_to_feishu(msg_text):
     print(response.text)
 
 
-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
     """
     # 获取数据
@@ -187,10 +188,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__':
@@ -198,5 +199,5 @@ if __name__ == '__main__':
     # data_normalization(data_test)
     # request_post(request_url=config_.NOTIFY_BACKEND_UPDATE_ROV_SCORE_URL, request_data={'videos': []})
     video_ids = [110, 112, 113, 115, 116, 117, 118]
-    get_video_w_h_rate(video_ids=video_ids)
+    # update_video_w_h_rate(video_ids=video_ids)