match_rate_app.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. """
  2. @author: luojunhui
  3. """
  4. import time
  5. import schedule
  6. from datetime import datetime
  7. from functions import MatchRate, RateDetail
  8. from feishu import Feishu
  9. def job():
  10. """
  11. 定时任务方法
  12. :return:
  13. """
  14. MR = MatchRate()
  15. RD = RateDetail()
  16. F = Feishu(document_token="QF4YsYNJHhSOy3t6OM7cYfrBnq3")
  17. today_str = datetime.today().strftime("%Y%m%d")
  18. e_time = MR.generate_today_stamp(today_str)
  19. s_time = MR.generate_yesterday_stamp(today_str)
  20. result_list = MR.match_rate(start_time_stamp=s_time, end_time_stamp=e_time)
  21. result_obj = RD.rate_and_error_list(result_list)
  22. rate_list = [
  23. datetime.utcfromtimestamp(e_time / 1000).strftime("%Y%m%d"),
  24. result_obj['total_count'],
  25. result_obj['success_count'],
  26. result_obj['success_count'] / result_obj['total_count'] if result_obj['total_count'] else None,
  27. result_obj['fail_count'],
  28. result_obj['fail_count'] / result_obj['total_count'] if result_obj['total_count'] else None,
  29. result_obj['processing_count'],
  30. result_obj['processing_count'] / result_obj['total_count'] if result_obj['total_count'] else None,
  31. ]
  32. error_list = result_obj['error_list']
  33. # insert rate_list
  34. rate_sheet_id = "c65def"
  35. F.prepend_value(sheet_id=rate_sheet_id, values=[["******"]], ranges="A2:A2")
  36. F.insert_value(sheet_id=rate_sheet_id, values=[rate_list], ranges="A2:H2")
  37. # insert error_list
  38. error_sheet_id = "67wu2O"
  39. for item in error_list:
  40. F.prepend_value(sheet_id=error_sheet_id, values=[["*****"]], ranges="A2:A2")
  41. F.insert_value(sheet_id=error_sheet_id, values=[[today_str] + item], ranges="A2:D2")
  42. if __name__ == '__main__':
  43. job()
  44. # schedule.every().day.at("01:00").do(job)
  45. # while True:
  46. # schedule.run_pending()
  47. # time.sleep(1)