resetVideosToRadies.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import datetime
  2. import sys
  3. import time
  4. import schedule
  5. from loguru import logger
  6. logger.add("/app/logs/select.log", rotation="10 MB")
  7. sys.path.append('/app')
  8. import os
  9. print("Current working directory:", os.getcwd())
  10. from utils.odps_data import OdpsDataCount
  11. from utils.redis import RedisHelper
  12. def reset_videos_to_radies(day=3):
  13. """重置视频到Redis"""
  14. try:
  15. dt = (datetime.datetime.now() - datetime.timedelta(days=day)).strftime('%Y%m%d')
  16. logger.info(f"重置视频到Redis")
  17. redis_trigger_task = "task:video_trigger_insight"
  18. sql =f'select clickobjectid as video_id from loghubods.user_share_log where dt = {dt} and topic = "click" group by clickobjectid order by count(distinct machinecode) desc limit 1300'
  19. data = OdpsDataCount.main(sql)
  20. if not data:
  21. return
  22. RedisHelper().get_client().rpush(redis_trigger_task, *data)
  23. logger.info(f"[R] 写入Redis 成功 共写入 {len(data)} 条")
  24. except Exception as e:
  25. logger.error(f"[R] 写入Redis写入失败,失败信息{e}")
  26. if __name__ == "__main__":
  27. import sys
  28. day = 3 # 默认值
  29. if len(sys.argv) > 1:
  30. try:
  31. day = int(sys.argv[1])
  32. except Exception:
  33. pass
  34. reset_videos_to_radies(day)