liqian hace 2 años
padre
commit
1a291ea7d9
Se han modificado 3 ficheros con 64 adiciones y 0 borrados
  1. 55 0
      bottom_videos_update.py
  2. 7 0
      bottom_videos_update_task.sh
  3. 2 0
      config.py

+ 55 - 0
bottom_videos_update.py

@@ -0,0 +1,55 @@
+# -*- coding: utf-8 -*-
+# @ModuleName: bottom_videos_update
+# @Author: Liqian
+# @Time: 2022/8/31 19:46
+# @Software: PyCharm
+
+import traceback
+import datetime
+
+from pool_predict import get_videos_from_flow_pool
+from utils import filter_video_status
+from db_helper import RedisHelper
+from config import set_config
+from log import Log
+
+config_, _ = set_config()
+log_ = Log()
+
+
+def get_bottom_videos():
+    """获取流量池视频作为兜底视频"""
+    now_date = datetime.datetime.today()
+    log_.info(f"now_date = {now_date}")
+    app_type_list = [
+        config_.APP_TYPE['VLOG'],
+        config_.APP_TYPE['LOVE_LIVE'],
+        config_.APP_TYPE['LONG_VIDEO'],
+        config_.APP_TYPE['SHORT_VIDEO']
+    ]
+
+    video_ids = []
+    for app_type in app_type_list:
+        # 从流量池获取数据
+        videos = get_videos_from_flow_pool(app_type=app_type)
+        if len(videos) <= 0:
+            continue
+        for video in videos:
+            video_id = int(video['videoId'])
+            if video_id not in video_ids:
+                video_ids.append(video_id)
+    log_.info(f"video_ids count = {len(video_ids)}")
+    filtered_videos = filter_video_status(video_ids)
+    log_.info(f"filtered_videos count = {len(filtered_videos)}")
+    if len(filtered_videos) > 0:
+        # redis数据更新
+        redis_helper = RedisHelper()
+        redis_helper.del_keys(key_name=config_.BOTTOM2_KEY_NAME)
+        redis_helper.add_data_with_set(key_name=config_.BOTTOM2_KEY_NAME, values=tuple(filtered_videos))
+        # 移除bottom key的过期时间,将其转换为永久状态
+        redis_helper.persist_key(key_name=config_.BOTTOM_KEY_NAME)
+        log_.info('{} update bottom videos success!, count = {}'.format(now_date, len(filtered_videos)))
+
+
+if __name__ == '__main__':
+    get_bottom_videos()

+ 7 - 0
bottom_videos_update_task.sh

@@ -0,0 +1,7 @@
+source /etc/profile
+echo $ROV_OFFLINE_ENV
+if [[ $ROV_OFFLINE_ENV == 'test' ]]; then
+    cd /data2/rov-offline && /root/anaconda3/bin/python /data2/rov-offline/bottom_videos_update.py
+elif [[ $ROV_OFFLINE_ENV == 'pro' ]]; then
+    cd /data/rov-offline && /root/anaconda3/bin/python /data/rov-offline/bottom_videos_update.py
+fi

+ 2 - 0
config.py

@@ -390,6 +390,8 @@ class BaseConfig(object):
     BOTTOM_NUM = 1000
     # 首页兜底视频json存储 redis-key
     BOTTOM_JSON_KEY_NAME = 'com.weiqu.video.homepage.bottom.info.json.item'
+    # 兜底视频redis存储key-方案2:采用流量池视频作为兜底视频
+    BOTTOM2_KEY_NAME = 'bottom2:videos'
 
     # 修改ROV的视频 redis key
     UPDATE_ROV_KEY_NAME = 'update:rov:item:score:applet'