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 ...
随机推荐
- ASP.NET AJAX入门系列(6):UpdateProgress控件简单介绍
在ASP.NET AJAX Beta2中,UpdateProgress控件已经从“增值”CTP中移到了ASP.NET AJAX核心中.以下两篇关于UpdateProgress的文章基本翻译自ASP.N ...
- Linux shell脚本读取用户输入的参数
新建一个test.sh文件 #!/bin/sh echo "1 : For Test" echo "2 : For nohup &" whiletrue ...
- MySql 常见错误代码大全 VV2
从机一直1593错误,排查了半天发现是从的配置文件中的server-id没改导致,此低级错误记录下警醒自己 B.1. 服务器错误代码和消息 服务器错误信息来自下述源文件: · 错误消息信息列在shar ...
- django 初始化 介绍 生命周期
安装好django,配置模板,静态文件 # 创建Django工程 django-admin startproject [工程名称] mysite - mysite # 对整个程序进行配置 - init ...
- linux新手非常有用的20个命令
引用:http://www.oschina.net/translate/useful-linux-commands-for-newbies 1. ls命令 ls命令是列出目录内容(List Direc ...
- VBScript Scripting Techniques: File Open Dialog http://www.robvanderwoude.com/vbstech_ui_fileopen.php
I accept cookies This website uses cookies to ensure you get the best experience on our website More ...
- C++11--右值引用(Perfect Forwarding)
/* * 右值引用 2: Perfect Forwarding */ void foo( boVector arg ); // boVector既有移动构造又有拷贝构造 template< ty ...
- C#实现mongodb自增列的使用
创建一个集合存放_id db.createCollection("counters") 加入需要自增的字段 { "_id":"productid&qu ...
- JS之滚动条效果2
在前面一篇说的是滚动条效果,本篇继续在前面的基础上面针对滚动条进行操作.本次要实现的效果如下:拖动滚动条左右移动时,上面的图片内容也相对外层盒子做相对移动. 下面针对要实现的效果进行分析:首先是页面基 ...
- 解决python中路径中包含中文无法找到文件的问题
a="C:\Users\Dell\Desktop\ATOU\公共测试用例" (带中文的路径) a=a.decode("utf-8").encode(" ...