special_mids_update.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import time
  2. import datetime
  3. import pandas as pd
  4. import math
  5. import random
  6. from odps import ODPS
  7. from threading import Timer
  8. from get_data import get_data_from_odps
  9. from db_helper import RedisHelper, MysqlHelper
  10. from my_config import set_config
  11. from log import Log
  12. from my_utils import filter_video_status_with_applet_rec
  13. config_, env = set_config()
  14. log_ = Log()
  15. def get_special_mid(now_date, project, table):
  16. """获取特殊mid数据"""
  17. dt = datetime.datetime.strftime(now_date, '%Y%m%d%H')
  18. odps = ODPS(
  19. access_id=config_.ODPS_CONFIG['ACCESSID'],
  20. secret_access_key=config_.ODPS_CONFIG['ACCESSKEY'],
  21. project=project,
  22. endpoint=config_.ODPS_CONFIG['ENDPOINT'],
  23. onnect_timeout=3000,
  24. read_timeout=500000,
  25. pool_maxsize=1000,
  26. pool_connections=100
  27. )
  28. records = odps.read_table(name=table)
  29. mid_list = []
  30. for record in records:
  31. if record['sharemid']:
  32. mid_list.append(record['sharemid'])
  33. if record['clickmid']:
  34. mid_list.append(record['clickmid'])
  35. mid_list2 = list(set(mid_list))
  36. redis_helper = RedisHelper()
  37. key_name = config_.KEY_NAME_SPECIAL_MID
  38. if redis_helper.key_exists(key_name=key_name):
  39. redis_helper.del_keys(key_name=key_name)
  40. redis_helper.add_data_with_set(key_name=key_name, values=mid_list2, expire_time=48 * 3600)
  41. log_.info(f"dt = {dt}, special_mid_count = {len(mid_list2)}")
  42. if __name__ == '__main__':
  43. project = config_.SPECIAL_MID_VIDEOS_PROJECT.get('mid')
  44. table = config_.SPECIAL_MID_VIDEOS_TABLE.get('mid')
  45. now_date = datetime.datetime.today()
  46. log_.info(f"now_date: {datetime.datetime.strftime(now_date, '%Y%m%d%H')}")
  47. get_special_mid(now_date=now_date, project=project, table=table)