alg_recsys_recall_shield_videos.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. # -*- coding: utf-8 -*-
  2. import traceback
  3. from config import set_config
  4. from log import Log
  5. from utils import execute_sql_from_odps
  6. from db_helper import RedisHelper
  7. config_, _ = set_config()
  8. log_ = Log()
  9. redis_helper = RedisHelper()
  10. table = "loghubods.special_area_recommend_limit"
  11. RISK_SHIELD_FILTER_VIDEO_V1_STR = "RISK_SHIELD_FILTER_VIDEO_V1_STR"
  12. def get_special_area_limit_videos():
  13. """获取特殊地域屏蔽视频并存入redis"""
  14. try:
  15. # 获取特殊地域屏蔽视频
  16. sql = "SELECT videoid FROM {}.{};".format(config_.PROJECT_SPECIAL_AREA_LIMIT,
  17. config_.TABLE_SPECIAL_AREA_LIMIT)
  18. print("sql:"+sql)
  19. records = execute_sql_from_odps(project=config_.PROJECT_SPECIAL_AREA_LIMIT, sql=sql)
  20. video_id_list = []
  21. with records.open_reader() as reader:
  22. for record in reader:
  23. video_id = int(record['videoid'])
  24. video_id_list.append(video_id)
  25. log_.info(f"special area limit videos count = {len(video_id_list)}")
  26. log_.info("videos = {}".format(",".join([str(i) for i in video_id_list])))
  27. # 存入redis
  28. if len(video_id_list) > 0:
  29. redis_helper.del_keys(key_name=RISK_SHIELD_FILTER_VIDEO_V1_STR)
  30. value = ",".join([str(i) for i in video_id_list])
  31. redis_helper.set_data_to_redis(key_name=RISK_SHIELD_FILTER_VIDEO_V1_STR, value=value,
  32. expire_time=3600*24 * 7)
  33. # redis_helper.del_keys(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME)
  34. # redis_helper.add_data_with_set(key_name=config_.SPECIAL_AREA_LIMIT_KEY_NAME, values=video_id_list,
  35. # expire_time=25 * 3600)
  36. except Exception as e:
  37. log_.error(str(e) + str(traceback.format_exc()))
  38. def main():
  39. get_special_area_limit_videos()
  40. expire_time = 3600*24 * 30
  41. key = "RISK_SHIELD_FILTER_RULE_V1_JSON"
  42. value = "{\"2\": [\"110000\"]}"
  43. redis_helper.set_data_to_redis(key, value, expire_time)
  44. value_get = redis_helper.get_data_from_redis(key_name=key)
  45. print('key:', key, type(key))
  46. print('value_get:', value_get, type(value_get))
  47. key = "RISK_SHIELD_FILTER_EXPANSION_FACTOR_INT"
  48. value = "5"
  49. redis_helper.set_data_to_redis(key, value, expire_time)
  50. value_get = redis_helper.get_data_from_redis(key_name=key)
  51. print('key:', key, type(key))
  52. print('value_get:', value_get, type(value_get))
  53. key = "RISK_SHIELD_FILTER_FLAG_BOOL"
  54. value = "False"
  55. redis_helper.set_data_to_redis(key, value, expire_time)
  56. value_get = redis_helper.get_data_from_redis(key_name=key)
  57. print('key:', key, type(key))
  58. print('value_get:', value_get, type(value_get))
  59. if __name__ == '__main__':
  60. main()
  61. # cd /root/zhangbo/rov-offline
  62. # python alg_recsys_recall_shield_videos.py