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.执行结果稳定输出
原文地址:http://www.cnblogs.com/dengyu001/p/16877698.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性