如何解决spring框架自带@Scheduled引发的冲突问题

1.@Scheduled定时器引发冲突问题如何处理?

不用处理,不用@Scheduled就没有冲突,正解


2.为何用到定时器?

项目开发中总是需要执行一些定时任务,比如定时处理数据之后发送邮件,定时更新缓存等等。

3.使用Quartz开源框架即可解决定时任务

4.引入jia包

<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.3.2</version>
</dependency>

5.创建两个测试类

 6.测试代码如下

public class TestJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext){
String data = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
System.out.println("START DATA BACKUP,current time:"+data);

}
}
-------------------------------------
public class TestScheduler{
public static void main(String[] args) throws Exception{
//获取任务调度的实例
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
//定义任务调度实例,并与TestJob绑定
JobDetail job = JobBuilder.newJob(TestJob.class).withIdentity("testJob","testJobGroup").build();
//定义触发器,会马上触发一次,每5秒触发一次
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("testTrigger","testTriggerGroup").startNow().withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(5)).build();
//使用触发器调度任务的执行
scheduler.scheduleJob(job,trigger);
//开启任务
scheduler.start();
}
}

 7.执行结果稳定输出

posted @ 2022-11-10 17:17  努力前行、  阅读(635)  评论(0)    收藏  举报