package com.sqx.scheduler.reconciliation; import com.sqx.modules.reconciliation.service.PlatformBillService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.time.LocalDate; /** * 对账定时任务 * * @author : codingliang * @date : 2024-09-09 12:22 */ @Slf4j @Component @RequiredArgsConstructor public class BillsScheduler { private final PlatformBillService platformBillService; /** * 将所有超过失效时间的优惠券改为失效状态 * 每填0点2分30秒执行一次 */ // @Async // @Scheduled(cron = "30 2 0 * * ?", zone = "Asia/Shanghai") // // @Scheduled(cron = "30 * * * * ?", zone = "Asia/Shanghai") // public void insertPlatformBill(){ // int errorCount = 0 ; // log.info("开始统计对账数据"); // while (errorCount<3){ // try { // int count =platformBillService.insertPlatformBill(); // if(count!=0){ // break; // } // } catch (Exception e) { // log.error("统计对账数据异常:{}", e.getMessage()); // errorCount++; // try { // Thread.sleep(10000); // } catch (InterruptedException ex) { // throw new RuntimeException(ex); // } // } // } // log.info("统计对账数据结束"); // } /** * 定时生成对账单 * 每天的2点30分、40分、50分执行一次 */ @Async @Scheduled(cron = "0 30,40,50 2 * * ?") public void generatePlatformBill(){ log.info("开始统计对账数据..."); LocalDate date = LocalDate.now().minusDays(1); // 统计对账数据,不覆盖已有数据 platformBillService.generatePlatformBill(date, false); log.info("对账数据统计完成..."); } }