内容简介:以前我写过spring自带的定时任务SpringBoot(十):定时任务 https://aodeng.cc/archives/springbootshicron 一共有七位,最后一位是年,Spring Boot 定时方案中只需要设置六位即可:第一位,表示秒,取值 0 ~ 59
Spring Boot(十七): 集成 Quartz
以前我写过spring自带的定时任务SpringBoot(十):定时任务 https://aodeng.cc/archives/springbootshi
很方便也很简单,掌握cron表达式就行,cron 说明
cron 一共有七位,最后一位是年,Spring Boot 定时方案中只需要设置六位即可:
第一位,表示秒,取值 0 ~ 59
第二位,表示分,取值 0 ~ 59
第三位,表示小时,取值 0 ~ 23
第四位,日期天/日,取值 1 ~ 31
第五位,日期月份,取值 1~12
第六位,星期,取值 1 ~ 7,星期一,星期二...,注,不是第 1 周、第 2 周的意思,另外,1 表示星期天,2 表示星期一
第七位,年份,可以留空,取值 1970 ~ 2099
简单介绍一下Quartz
Job 为作业的接口,为任务调度的对象;JobDetail 用来描述 Job 的实现类及其他相关的静态信息;Trigger 做为作业的定时管理工具,一个 Trigger 只能对应一个作业实例,而一个作业实例可对应多个触发器;Scheduler 做为定时任务容器,是 Quartz 最上层的东西,它提携了所有触发器和作业,使它们协调工作,每个 Scheduler 都存有 JobDetail 和 Trigger 的注册,一个 Scheduler 中可以注册多个 JobDetail 和多个 Trigger。
使用: 我们创建两个job TestJob
/**
* @program:hope
* @ClassName:TestJob
* @author:aodeng
* @blog:低调小熊猫(https://aodeng.cc)
* @create:2019-02-26 10:17
* @Description: TODO
* @Version 1.0
**/
public class TestJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("TestJob running ...");
}
}
TestJob2
/**
* @program:hope
* @ClassName:TestJob2
* @author:aodeng
* @blog:低调小熊猫(https://aodeng.cc)
* @create:2019-02-26 10:18
* @Description: TODO
* @Version 1.0
**/
public class TestJob2 implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("TestJob2 running ...");
}
}
创建CronScheduleJob
/**
* @program:hope
* @ClassName:CronScheduleJob
* @author:aodeng
* @blog:低调小熊猫(https://aodeng.cc)
* @create:2019-02-26 10:21
* @Description: TODO
* @Version 1.0
**/
@Component
public class CronScheduleJob {
@Autowired
private SchedulerFactoryBean schedulerFactoryBean;
/**
* @Description: 启动两个定时任务
* @Param: []
* @return: []
* @Author: aodeng
* @Date: 19-2-26
*/
public void scheduleJobs() throws SchedulerException{
Scheduler scheduler=schedulerFactoryBean.getScheduler();
schedulejobs(scheduler);
schedulejobs2(scheduler);
}
private void schedulejobs(Scheduler scheduler) throws SchedulerException{
JobDetail jobDetail = JobBuilder.newJob(TestJob.class).withIdentity("job","group").build();
//间隔 6 秒
CronScheduleBuilder scheduleBuilder=CronScheduleBuilder.cronSchedule("0/6 * * * * ?");
CronTrigger cronTrigger=TriggerBuilder.newTrigger().withIdentity("trigger","group").withSchedule(scheduleBuilder).build();
scheduler.scheduleJob(jobDetail,cronTrigger);
}
private void schedulejobs2(Scheduler scheduler) throws SchedulerException{
JobDetail jobDetail = JobBuilder.newJob(TestJob2.class).withIdentity("job2","group2").build();
//间隔 12 秒
CronScheduleBuilder scheduleBuilder=CronScheduleBuilder.cronSchedule("0/12 * * * * ?");
CronTrigger cronTrigger=TriggerBuilder.newTrigger().withIdentity("trigger2","group2").withSchedule(scheduleBuilder).build();
scheduler.scheduleJob(jobDetail,cronTrigger);
}
}
启动
/**
* @program:hope
* @ClassName:MyStartupRunner
* @author:aodeng
* @blog:低调小熊猫(https://aodeng.cc)
* @create:2019-02-26 10:38
* @Description: 启动时触发定时任务
* @Version 1.0
**/
@Component
public class MyStartupRunner implements CommandLineRunner{
/** logger */
private static final Logger LOGGER = LoggerFactory.getLogger(MyStartupRunner.class);
@Autowired
private CronScheduleJob cronScheduleJob;
@Override
public void run(String... args) throws Exception {
cronScheduleJob.scheduleJobs();
LOGGER.info(">>>>>>>>>>>>>>>定时任务开始执行<<<<<<<<<<<<<");
}
}
源码地址
https://github.com/java-aodeng/hope
- 本文作者: 低调小熊猫
- 本文链接: https://aodeng.cc/archives/1551317977552
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 持续集成:数据库集成及快速构建
- ShareSDK集成及集成后遇到的一些问题【原创】
- 持续集成与持续部署宝典Part 3:创建集成环境
- 持续集成与持续部署宝典Part 2:创建持续集成流水线
- 禅道 12.3.stable 版本发布,全面集成八种单元测试框架,打通持续集成闭环
- 持续集成将死
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Operating System Algorithms
Nathan Adams、Elisha Chirchir / CreateSpace Independent Publishing Platform / 2017-4-21 / USD 39.15
Operating System Algorithms will walk you through in depth examples of algorithms that you would find in an operating system. Selected algorithms include process and disk scheduling.一起来看看 《Operating System Algorithms》 这本书的介绍吧!