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 ...
随机推荐
- Zookeeper命令行auth,digest
一.auth auth:user:pwd:cdrwa digest:user:BASE64(SHA1(PWD)):cdrwa addauth digest user:pwd 增加用户和密码都是zhan ...
- NLB网路负载均衡管理
相对于ARR来说,ARR算是应用级别的负载均衡方案,而NLB则是服务器级别的负载均衡方案.ARR只能做请求入口的消息分发服务,这样如果我们的消息分发服务器给挂掉,那么做再多的应用服务集群也都枉然. A ...
- SSH框架搭建demo
1.新建Java Web工程 2.添加Struts2.1框架支持 去除冲突包:antlr-2.7.2.jar 一般项目加上这三个包足够,后期可以视项目需求增加支持包: 2.1配置web.xml文件 增 ...
- 多进程共享数据,真正的通信Manager
Managers A manager object returned by Manager() controls a server process which holds Python objects ...
- https 不检验证书
System.Net.ServicePointManager.ServerCertificateValidationCallback += (s, cert, chain, sslPolicyErro ...
- nginx http 正向代理
打开\nginx-1.12.2\conf\nginx.conf, 在http{ } ,大括号内加入 http { #............................. #...... ...
- C#中全局处理异常方式
using System; using System.Configuration; using System.Text; using System.Windows.Forms; using ZB.Qu ...
- Multiresolution Analysis(多分辨率分析)
[注意:本文中所有的傅里叶变换和反变换均含对称因子$\frac{1}{\sqrt{2\pi}}$,且$z=e^{-ik\omega}$] 1. 多分辨率分析 1.1 概念 多分辨率分析指的是一系列$L ...
- RTB业务知识之2-Open-RTB全景
一.前言 openrtb是一套开源的竞价广告系统,来自IAB的贡献,非常好.有非常多的值得借鉴的地方,最近基于其所提供sdk api接口文档介绍,整理了相关的资料.主要包括其生态图体系.业务流程和主要 ...
- 引用 自动化测试基础篇--Selenium Python环境搭建
原文链接:https://www.cnblogs.com/sanzangTst/p/7452922.html 鸣谢参藏法师. 学习selenium python需要的工具: 1.浏览器 2.Pytho ...