select_work.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import datetime
  2. import os
  3. import sys
  4. from apscheduler.schedulers.blocking import BlockingScheduler
  5. from apscheduler.triggers.cron import CronTrigger
  6. from loguru import logger
  7. sys.path.append('/app')
  8. from utils.feishu_form import Material
  9. from utils.redis import RedisHelper
  10. class StartGetRecommend(object):
  11. @classmethod
  12. def run(cls):
  13. dt = int(datetime.datetime.now().strftime('%Y%m%d%H'))
  14. fs_data = os.getenv("FS_DATA")
  15. logger.info(f"[FS] {fs_data},时区为{dt}")
  16. fs_data_list = fs_data.split(',')
  17. name = fs_data_list[0]
  18. fs_sheet = fs_data_list[1]
  19. redis_name = fs_data_list[2]
  20. logger.info(f"[FS] 开始获取{name},时区为{dt}")
  21. data = Material.get_carry_data(dt, fs_sheet, name)
  22. if not data:
  23. logger.info(f"[FS] {name},时区为{dt}没有获取到数据")
  24. return
  25. RedisHelper().get_client().rpush(redis_name, *data)
  26. logger.info(f"[FS] {name},时区为{dt}共获取{len(data)}条,写入成功")
  27. def run():
  28. scheduler = BlockingScheduler()
  29. try:
  30. scheduler.add_job(StartGetRecommend.run, trigger=CronTrigger(minute=10, second=0)) # 每小时获取一次
  31. scheduler.start()
  32. except KeyboardInterrupt:
  33. pass
  34. except Exception as e:
  35. pass
  36. finally:
  37. scheduler.shutdown()
  38. if __name__ == '__main__':
  39. run()