ad_ecpm_update.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import datetime
  2. import json
  3. import traceback
  4. from utils import request_get, send_msg_to_feishu
  5. from db_helper import RedisHelper
  6. from config import set_config
  7. from log import Log
  8. config_, _ = set_config()
  9. log_ = Log()
  10. def get_ad_ecpm():
  11. """获取广告ecpm值"""
  12. ad_ecpm = {}
  13. result = request_get(request_url=config_.GET_AD_ECPM_URL)
  14. print(result)
  15. if result is None:
  16. log_.info('获取广告ecpm值失败!')
  17. return ad_ecpm
  18. if result['code'] != 0:
  19. log_.info('获取广告ecpm值失败!')
  20. return ad_ecpm
  21. if not result['data']:
  22. return ad_ecpm
  23. ad_ecpm = result['data']
  24. print(ad_ecpm)
  25. return ad_ecpm
  26. def update_ad_ecpm():
  27. try:
  28. now_date = datetime.datetime.today()
  29. log_.info(f"now_date: {datetime.datetime.strftime(now_date, '%Y%m%d%H')}")
  30. # 获取广告ecpm值
  31. ad_ecpm = get_ad_ecpm()
  32. log_.info(f"ad_ecpm: {ad_ecpm}")
  33. if len(ad_ecpm) == 0:
  34. send_msg_to_feishu(
  35. webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
  36. key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
  37. msg_text=f"rov-offline{config_.ENV_TEXT} - 广告ecpm获取失败!"
  38. )
  39. return
  40. redis_helper = RedisHelper()
  41. redis_helper.set_data_to_redis(key_name=config_.KEY_NAME_AD_ECPM, value=json.dumps(ad_ecpm))
  42. redis_helper.persist_key(key_name=config_.KEY_NAME_AD_ECPM)
  43. send_msg_to_feishu(
  44. webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
  45. key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
  46. msg_text=f"rov-offline{config_.ENV_TEXT} - 广告ecpm更新完成!\nad_ecpm = {ad_ecpm}"
  47. )
  48. log_.info(f"ad ecpm update end!")
  49. except Exception as e:
  50. log_.error(f"广告ecpm更新失败, exception: {e}, traceback: {traceback.format_exc()}")
  51. send_msg_to_feishu(
  52. webhook=config_.FEISHU_ROBOT['server_robot'].get('webhook'),
  53. key_word=config_.FEISHU_ROBOT['server_robot'].get('key_word'),
  54. msg_text=f"rov-offline{config_.ENV_TEXT} - 广告ecpm更新失败\n"
  55. f"exception: {e}\n"
  56. f"traceback: {traceback.format_exc()}"
  57. )
  58. if __name__ == '__main__':
  59. update_ad_ecpm()