alg_recsys_recall_shield_videos.py 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. # -*- coding: utf-8 -*-
  2. import traceback
  3. from my_config import set_config
  4. from log import Log
  5. from my_utils import execute_sql_from_odps
  6. from db_helper import RedisHelper
  7. import datetime
  8. import json
  9. config_, _ = set_config()
  10. log_ = Log()
  11. redis_helper = RedisHelper()
  12. table = "loghubods.special_area_recommend_limit"
  13. RISK_SHIELD_FILTER_VIDEO_V1_STR = "RISK_SHIELD_FILTER_VIDEO_V1_STR"
  14. def get_special_area_limit_videos():
  15. """获取特殊地域屏蔽视频并存入redis"""
  16. try:
  17. # 获取特殊地域屏蔽视频
  18. sql = "SELECT videoid FROM {}.{};".format(config_.PROJECT_SPECIAL_AREA_LIMIT,
  19. config_.TABLE_SPECIAL_AREA_LIMIT)
  20. print("sql:"+sql)
  21. records = execute_sql_from_odps(project=config_.PROJECT_SPECIAL_AREA_LIMIT, sql=sql)
  22. video_id_list = []
  23. with records.open_reader() as reader:
  24. for record in reader:
  25. video_id = int(record['videoid'])
  26. video_id_list.append(video_id)
  27. log_.info(f"special area limit videos count = {len(video_id_list)}")
  28. log_.info("videos = {}".format(",".join([str(i) for i in video_id_list])))
  29. # 存入redis
  30. if len(video_id_list) > 0:
  31. video_id_list = [1]
  32. value = ",".join([str(i) for i in video_id_list])
  33. redis_helper.set_data_to_redis(key_name=RISK_SHIELD_FILTER_VIDEO_V1_STR, value=value,
  34. expire_time=3600*24 * 7)
  35. # redis_helper.del_keys(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME)
  36. # redis_helper.add_data_with_set(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME, values=video_id_list,
  37. # expire_time=25 * 3600)
  38. except Exception as e:
  39. log_.error(str(e) + str(traceback.format_exc()))
  40. def main():
  41. log_.info("开始执行:" + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
  42. # -----------------风险过滤需求------------------------------------------------
  43. get_special_area_limit_videos()
  44. expire_time = 3600*24 * 30
  45. key = "RISK_SHIELD_FILTER_RULE_V1_JSON"
  46. value = "{\"2\": []}"
  47. redis_helper.set_data_to_redis(key, value, expire_time)
  48. value_get = redis_helper.get_data_from_redis(key_name=key)
  49. print('key:', key, type(key))
  50. print('value_get:', value_get, type(value_get))
  51. key = "RISK_SHIELD_FILTER_EXPANSION_FACTOR_INT"
  52. value = "10"
  53. redis_helper.set_data_to_redis(key, value, expire_time)
  54. value_get = redis_helper.get_data_from_redis(key_name=key)
  55. print('key:', key, type(key))
  56. print('value_get:', value_get, type(value_get))
  57. key = "RISK_SHIELD_FILTER_FLAG_BOOL"
  58. value = "True"
  59. redis_helper.set_data_to_redis(key, value, expire_time)
  60. value_get = redis_helper.get_data_from_redis(key_name=key)
  61. print('key:', key, type(key))
  62. print('value_get:', value_get, type(value_get))
  63. # -----------------多样性需求的过滤------------------------------------------------
  64. expire_time = 3600 * 24 * 30
  65. key = "TAGS_FILTER_FLAG_BOOL"
  66. value = "True"
  67. redis_helper.set_data_to_redis(key, value, expire_time)
  68. value_get = redis_helper.get_data_from_redis(key_name=key)
  69. print('key:', key, type(key))
  70. print('value_get:', value_get, type(value_get))
  71. key = "TAGS_FILTER_RULE_V1_JSON"
  72. with open('alg_recsys_recall_tags_videos.json', 'r') as f:
  73. json_read = json.load(f)
  74. value = json.dumps(json_read, ensure_ascii=False)
  75. redis_helper.set_data_to_redis(key, value, expire_time)
  76. value_get = redis_helper.get_data_from_redis(key_name=key)
  77. print('key:', key, type(key))
  78. print('value_get:', value_get, type(value_get))
  79. key = "TAGS_FILTER_RULE_V2_JSON"
  80. with open('alg_recsys_recall_tags_videos_v2.json', 'r') as f:
  81. json_read = json.load(f)
  82. value = json.dumps(json_read, ensure_ascii=False)
  83. redis_helper.set_data_to_redis(key, value, expire_time)
  84. value_get = redis_helper.get_data_from_redis(key_name=key)
  85. print('key:', key, type(key))
  86. print('value_get:', value_get, type(value_get))
  87. key = "TAGS_FILTER_RULE_V3_JSON"
  88. with open('alg_recsys_recall_tags_videos_v3.json', 'r') as f:
  89. json_read = json.load(f)
  90. value = json.dumps(json_read, ensure_ascii=False)
  91. redis_helper.set_data_to_redis(key, value, expire_time)
  92. value_get = redis_helper.get_data_from_redis(key_name=key)
  93. print('key:', key, type(key))
  94. print('value_get:', value_get, type(value_get))
  95. log_.info("完成执行:" + datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
  96. if __name__ == '__main__':
  97. main()
  98. # cd /root/zhangbo/rov-offline
  99. # python alg_recsys_recall_shield_videos.py