由于是初级程序员,基于注解的形式实现了一个简单的定时任务;
1. 使用@Scheduled注解
Spring的@Scheduled注解是一种非常简单和便捷的实现定时任务的方式。通过在方法上添加@Scheduled注解,我们可以指定方法在特定的时间间隔或固定的时间点执行。
@Scheduled(cron = "*/59 * * * * ?")
@TenantJob
public void cleanClue() {
List<ClueFollowUpDO> clueFollowUpDOList = clueFollowUpMapper.selectList();
LocalDate today = LocalDate.now();
System.out.println("999999");
System.out.println(today);
for (ClueFollowUpDO clueFollowUpDO : clueFollowUpDOList) {
if (clueFollowUpDO.getFollowUpNextTime().isBefore(today)) {
clueFollowUpDO.setTaskStatus("2");
} else {
clueFollowUpDO.setTaskStatus("1");
}
clueFollowUpMapper.updateById(clueFollowUpDO);
}
}
定时任务:通过@Scheduled(cron = "0/50 * * * * ?")
注解,这个cleanClue
方法被安排为定时任务,每隔50秒执行一次(从每分钟的第0秒开始,每50秒执行一次)。
数据检索:在方法内部,首先通过clueFollowUpMapper.selectList()
检索所有ClueFollowUpDO
对象的列表。
日期处理:使用LocalDate today = LocalDate.now();
获取当前日期(不包含时间部分)。
任务状态更新:遍历所有检索到的ClueFollowUpDO
对象,并根据followUpNextTime
与当前日期的比较结果来更新taskStatus
字段。
@EnableScheduling这个注解需要加在启动类上
@SpringBootApplication
@EnableScheduling
public class SaleServerApplication {
public static void main(String[] args) {
SpringApplication.run(SaleServerApplication.class, args);
}
}
基于注解的形式很简单,有没有其他的方法呢。求大佬私信我一下,有偿;