spring boot整合quartz实现多个定时任务
最近收到了很多封邮件,都是想知道spring boot整合quartz如何实现多个定时任务的,由于本人生产上并没有使用到多个定时任务,这里给个实现的思路。
1、新建两个定时任务,如下:
- public class ScheduledJob implements Job{
- @Override
- public void execute(JobExecutionContext context) throws JobExecutionException {
- System.out.println("schedule job1 is running…………………………………… ");
- }
- }
- public class ScheduledJob2 implements Job {
- @Override
- public void execute(JobExecutionContext context) throws JobExecutionException {
- System.out.println("schedule job2 is running ……………………………………………………");
- }
- }
2、配置以上两个任务
- @Component
- public class SchedulerAllJob {
- @Autowired
- private SchedulerFactoryBean schedulerFactoryBean;
- /*
- * 此处可以注入数据库操作,查询出所有的任务配置
- */
- /**
- * 该方法用来启动所有的定时任务
- * @throws SchedulerException
- */
- public void scheduleJobs() throws SchedulerException {
- Scheduler scheduler = schedulerFactoryBean.getScheduler();
- /**
- *
- */
- scheduleJob1(scheduler);
- scheduleJob2(scheduler);
- }
- /**
- * 配置Job1
- * 此处的任务可以配置可以放到properties或者是放到数据库中
- * 如果此时需要做到动态的定时任务,请参考:http://blog.csdn.net/liuchuanhong1/article/details/60873295
- * 博客中的ScheduleRefreshDatabase类
- * @param scheduler
- * @throws SchedulerException
- */
- private void scheduleJob1(Scheduler scheduler) throws SchedulerException{
- /*
- * 此处可以先通过任务名查询数据库,如果数据库中存在该任务,则按照ScheduleRefreshDatabase类中的方法,更新任务的配置以及触发器
- * 如果此时数据库中没有查询到该任务,则按照下面的步骤新建一个任务,并配置初始化的参数,并将配置存到数据库中
- */
- JobDetail jobDetail = JobBuilder.newJob(ScheduledJob.class) .withIdentity("job1", "group1").build();
- // 每5s执行一次
- CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/5 * * * * ?");
- CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger1", "group1") .withSchedule(scheduleBuilder).build();
- scheduler.scheduleJob(jobDetail,cronTrigger);
- }
- /**
- * 配置Job
- * @param scheduler
- * @throws SchedulerException
- */
- private void scheduleJob2(Scheduler scheduler) throws SchedulerException{
- JobDetail jobDetail = JobBuilder.newJob(ScheduledJob2.class) .withIdentity("job2", "group1").build();
- CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule("0/10 * * * * ?");
- // 每10s执行一次
- CronTrigger cronTrigger = TriggerBuilder.newTrigger().withIdentity("trigger2", "group1") .withSchedule(scheduleBuilder).build();
- scheduler.scheduleJob(jobDetail,cronTrigger);
- }
- }
3、启动两个任务
- @Configuration
- @EnableScheduling
- @Component
- public class SchedulerListener {
- @Autowired
- public SchedulerAllJob myScheduler;
- /**
- * 启动的时候执行该方法,或者是使用ApplicationListener,在启动的时候执行该方法
- * 具体使用见:http://blog.csdn.net/liuchuanhong1/article/details/77568187
- * @throws SchedulerException
- */
- @Scheduled(cron="0 08 18 ? * *")
- public void schedule() throws SchedulerException {
- myScheduler.scheduleJobs();
- }
- @Bean
- public SchedulerFactoryBean schedulerFactoryBean(){
- SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
- return schedulerFactoryBean;
- }
- }
4、测试结果如下
- schedule job1 is running……………………………………
- schedule job2 is running ……………………………………………………
- schedule job1 is running……………………………………
- schedule job1 is running……………………………………
- schedule job2 is running ……………………………………………………
- schedule job1 is running……………………………………
- schedule job1 is running……………………………………
- schedule job2 is running ……………………………………………………
- schedule job1 is running……………………………………
spring boot整合quartz实现多个定时任务的更多相关文章
- spring boot 整合quartz ,job不能注入的问题
在使用spring boot 整合quartz的时候,新建定时任务类,实现job接口,在使用@AutoWire或者@Resource时,运行时出现nullpointException的问题.显然是相关 ...
- spring boot 整合 quartz 集群环境 实现 动态定时任务配置【原】
最近做了一个spring boot 整合 quartz 实现 动态定时任务配置,在集群环境下运行的 任务.能够对定时任务,动态的进行增删改查,界面效果图如下: 1. 在项目中引入jar 2. 将需要 ...
- Spring Boot整合Quartz实现定时任务表配置
最近有个小项目要做,spring mvc下的task设置一直不太灵活,因此在Spring Boot上想做到灵活的管理定时任务.需求就是,当项目启动的时候,如果有定时任务则加载进来,生成schedule ...
- Spring Boot 整合Quartz定时器
概述 项目需要定时器的调度管理,原来使用Spring Boot自带的定时器,但是不能后台动态的操作暂停.启动以及新增任务等操作,维护起来相对麻烦:最近研究了Quartz的框架,觉得还算不错,整理了一下 ...
- spring boot整合quartz定时任务案例
1.运行环境 开发工具:intellij idea JDK版本:1.8 项目管理工具:Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springBo ...
- 【Spring Boot学习之六】Spring Boot整合定时任务&异步调用
环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2一.定时任务1.启动类添加注解@EnableScheduling 用于开启定时任务 package com.wjy; i ...
- spring boot 系列之八:SpringBoot处理定时任务
项目经常会用到定时任务,springboot自然是可以通过整合相关组件来实现的. 目前常用的定时任务的实现有两种: 通过spring 自带的定时器任务@Schedule来实现 通过Quartz来实现 ...
- Spring Kafka和Spring Boot整合实现消息发送与消费简单案例
本文主要分享下Spring Boot和Spring Kafka如何配置整合,实现发送和接收来自Spring Kafka的消息. 先前我已经分享了Kafka的基本介绍与集群环境搭建方法.关于Kafka的 ...
- spring boot+mybatis+quartz项目的搭建完整版
1. 利用spring boot提供的工具(http://start.spring.io/)自动生成一个标准的spring boot项目架构 2. 因为这里我们是搭建spring boot+mybat ...
随机推荐
- PyCharm 连接Git及使用
一.PyCharm配置Git的环境 1.PyCharm 连接Git首先需要本机安装Git软件; 2.PyCharm 版本控制中设置Git的执行路径,file->Setting->Versi ...
- lsof根据端口返回进程号杀死进程的方法
参考自:http://newmiracle.cn/?p=661 Linux shell根据端口返回进程号杀死进程的方法 kill -9 `lsof -t -i:8888` 这个就是杀死8888端口的进 ...
- SDRAM---页读写
SDRAM---页读写 1.SDRAM页访问 一页通俗的来讲就是一行. SDRAM页写操作时序图: 2.DDR(经常被提起,但是我和你不熟) DDR的连续访问操作 给DDR一个write命令,同时给出 ...
- mysql日常处理
http://blog.csdn.net/zengxuewen2045/article/details/52349731 https://github.com/enmotplinux/On-Site- ...
- Ubuntu 14.04 正式版 12.4
安装Ubuntu 14.04后要做的5件事情 4月17日,开源免费系统Ubuntu官方正式宣布发布Ubuntu 14.04 LTS(代号Trusty Tahr)正式版.官方声称该版本主打云计算,在云平 ...
- Azure China (13) Azure China CDN经验总结
<Windows Azure Platform 系列文章目录> 最近处理了很多CDN的问题,在这里记录一下. 1.首先介绍一下CDN的原理: (1)用户输入需要访问的URL (比如www. ...
- java经典5种 FlowLayout 、BorderLayout、GridLayout、GridBagLayout、CardLayout布局
Java 程序通过jvm可以很好的移植到其他平台上,但是java 生成的图形界面样式,在不使用布局的情况下,往往需要重新设定大小,才能在新的平台上调整到最佳样式.这是由于组件的最佳大小 往往是与平台相 ...
- 黄聪:VPS服务器轻松备份工具配置
- 关于Tomcat配置虚拟路径保存、访问图片
在项目中往往需要上传一些图片文件之类,一般不建议直接保存在数据库内,往往是讲图片等资源保存在服务器的某个文件夹下,传统做法是上传到部署目录下,通过相对路径进行访问. 这样当我们系统需要进行升级,进行全 ...
- 【并发编程】使用BlockingQueue实现<多生产者,多消费者>
MasterThread: 持有一个BlockingQueue队列,用于并发接收存储MetaData对象; 使用Hash一致性算法ketama,来选择SlaveThread节点; 从Blocking ...