1.在需要进行定时任务的方法上加上注解@Scheduled,并且将类交给Spring容器管理,并给cron属性赋值,cron表示可以从网上找一个在线生成的网站,不用自己编写。
值得注意的是,网站生成的可能会有7位,而在SpringBoot中cron表达式中只能有6位,因为SpringBoot中的定时任务是不支持跨年的。
2.在启动类上添加@EnableScheduling注解开启定时任务功能
@Component
@RequiredArgsConstructor
public class OrderStatisticsTask {
private final OrderStatisticsMapper orderStatisticsMapper;
private final OrderInfoMapper orderInfoMapper;
//每天的凌晨两点,查询前一天的统计数据,把统计之后的数据添加到统计结果表中
@Scheduled(cron = "0 0 2 * * ?")
public void orderTotalAmountStatistics() {
String createTime = DateUtil.offsetDay(new Date(), -1).toString(new SimpleDateFormat("yyyy-MM-dd"));
OrderStatistics orderStatistics = orderInfoMapper.selectOrderStatistics(createTime);
if(orderStatistics != null) {
orderStatisticsMapper.insert(orderStatistics) ;
}
}
}