BillsScheduler.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.sqx.scheduler.reconciliation;
  2. import com.sqx.modules.reconciliation.service.PlatformBillService;
  3. import lombok.RequiredArgsConstructor;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.springframework.scheduling.annotation.Async;
  6. import org.springframework.scheduling.annotation.Scheduled;
  7. import org.springframework.stereotype.Component;
  8. import java.time.LocalDate;
  9. /**
  10. * 对账定时任务
  11. *
  12. * @author : codingliang
  13. * @date : 2024-09-09 12:22
  14. */
  15. @Slf4j
  16. @Component
  17. @RequiredArgsConstructor
  18. public class BillsScheduler {
  19. private final PlatformBillService platformBillService;
  20. /**
  21. * 将所有超过失效时间的优惠券改为失效状态
  22. * 每填0点2分30秒执行一次
  23. */
  24. // @Async
  25. // @Scheduled(cron = "30 2 0 * * ?", zone = "Asia/Shanghai")
  26. // // @Scheduled(cron = "30 * * * * ?", zone = "Asia/Shanghai")
  27. // public void insertPlatformBill(){
  28. // int errorCount = 0 ;
  29. // log.info("开始统计对账数据");
  30. // while (errorCount<3){
  31. // try {
  32. // int count =platformBillService.insertPlatformBill();
  33. // if(count!=0){
  34. // break;
  35. // }
  36. // } catch (Exception e) {
  37. // log.error("统计对账数据异常:{}", e.getMessage());
  38. // errorCount++;
  39. // try {
  40. // Thread.sleep(10000);
  41. // } catch (InterruptedException ex) {
  42. // throw new RuntimeException(ex);
  43. // }
  44. // }
  45. // }
  46. // log.info("统计对账数据结束");
  47. // }
  48. /**
  49. * 定时生成对账单
  50. * 每天的2点30分、40分、50分执行一次
  51. */
  52. @Async
  53. @Scheduled(cron = "0 30,40,50 2 * * ?")
  54. public void generatePlatformBill(){
  55. log.info("开始统计对账数据...");
  56. LocalDate date = LocalDate.now().minusDays(1);
  57. // 统计对账数据,不覆盖已有数据
  58. platformBillService.generatePlatformBill(date, false);
  59. log.info("对账数据统计完成...");
  60. }
  61. }