alg_recsys_recall_shield_videos.py 2.7 KB

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