pq_data_handle.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import json
  2. import os
  3. import time
  4. import uuid
  5. import schedule
  6. from apscheduler.schedulers.blocking import BlockingScheduler
  7. from apscheduler.triggers.interval import IntervalTrigger
  8. from loguru import logger
  9. from common.feishu_utils import Feishu
  10. from common.redis import get_carry_data, in_carry_video_data
  11. from pq_video.pq_video import PqViode
  12. ENV = os.getenv('ENV', 'dev')
  13. NAME = os.getenv('NAME')
  14. REDIS_NAME = os.getenv('REDIS_NAME')
  15. CACHE_DIR = '/app/cache/' if ENV == 'prod' else os.path.expanduser('~/Downloads/')
  16. class ConsumptionRecommend(object):
  17. @classmethod
  18. def run(cls):
  19. logger.info(f"[+] {REDIS_NAME}任务开始redis获取")
  20. for i in range(20):
  21. data = get_carry_data(REDIS_NAME)
  22. if not data:
  23. return
  24. try:
  25. logger.info(f"[+] {NAME}任务开始,数据为{data}")
  26. carry_video = PqViode()
  27. mark = carry_video.main(json.loads(data), REDIS_NAME)
  28. print(f"返回用户名: {mark}")
  29. logger.info(f"[+] {NAME}处理一条成功")
  30. continue
  31. except Exception as e:
  32. data = json.loads(data)
  33. in_carry_video_data(REDIS_NAME, json.dumps(data, ensure_ascii=False, indent=4))
  34. text = (
  35. f"**负责人**: {data['name']}\n"
  36. f"**内容**: {data}\n"
  37. f"**失败信息**: 站内视频重发失败,等待重新处理\n"
  38. )
  39. Feishu.finish_bot(text,
  40. "https://open.feishu.cn/open-apis/bot/v2/hook/65bc5463-dee9-46d0-bc2d-ec6c49a8f3cd",
  41. "【 老内容重发通知 】")
  42. logger.error(f"[+] {data}处理失败,失败信息{e}")
  43. continue
  44. return
  45. def run():
  46. scheduler = BlockingScheduler()
  47. try:
  48. logger.info(f"[+] 开始启动")
  49. scheduler.add_job(ConsumptionRecommend.run, trigger=IntervalTrigger(minutes=5)) # 每5分钟启动一次
  50. scheduler.start()
  51. except KeyboardInterrupt:
  52. pass
  53. except Exception as e:
  54. logger.error(f"[+] 启动异常,异常信息:{e}")
  55. pass
  56. finally:
  57. scheduler.shutdown()
  58. if __name__ == '__main__':
  59. run()