SpringBoot2.x整合quartz实现多任务定时执行

一、pom文件中导入相关依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>

二、分别编写任务代码类

/**
 * 任务一
 */
public class MyQuartzJob extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("talk is cheap.");
    }
}
/**
 * 任务二
 */
public class MyQuartzJob1 extends QuartzJobBean {

    @Override
    protected void executeInternal(JobExecutionContext jobExecutionContext) throws JobExecutionException {
        System.out.println("show me the code");
    }
}

三、分别编写相关的scheduler类(也可以写在一个类里)

/**
 * Scheduler来调度Trigger和JobDetil
 * JobDetail来实例化Job类并可以传值
 */
@Configuration
public class MyScheduler {

    @Bean(name = "JobDetail")
    public JobDetail simpleJobDetail(){

        JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob.class).withIdentity("eclipse")
                .usingJobData("key","value").storeDurably().build();
        return jobDetail;
    }

    @Bean(name = "trigger")
    public Trigger simpleJobTrigger(){

        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(4).repeatForever();

        return TriggerBuilder.newTrigger().forJob(simpleJobDetail())
                .withIdentity("sampleTrigger").withSchedule(scheduleBuilder).build();
    }
}
@Configuration
public class MyScheduler1 {

    @Bean(name = "JobDetail1")
    public JobDetail simpleJobDetail1(){

        JobDetail jobDetail = JobBuilder.newJob(MyQuartzJob1.class).withIdentity("eclipse1")
                .usingJobData("key","value").storeDurably().build();
        return jobDetail;
    }

    @Bean(name = "trigger1")
    public Trigger simpleJobTrigger1(){

        SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(6).repeatForever();

        return TriggerBuilder.newTrigger().forJob(simpleJobDetail1())
                .withIdentity("sampleTrigger1").withSchedule(scheduleBuilder).build();
    }
}

四、启动springboot即可查看任务执行情况

  具体的执行时间可以自己设置:这里分别是4秒和6秒:

原文地址:https://www.cnblogs.com/ring2/p/11399295.html

时间: 2024-10-06 20:08:19

SpringBoot2.x整合quartz实现多任务定时执行的相关文章

Spring 3整合Quartz 2实现定时任务一:常规整合 (基于maven构建) - mjorcen(转)

Spring 3整合Quartz 2实现定时任务一:常规整合 (基于maven构建) - mjorcen(转) 最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 首先,当然是添加依赖的jar文件,我的项目是maven管理的,以下的我项目的依赖: <properties> <project.build.sourceEncoding>UTF-8</p

Spring 3整合Quartz 2实现定时任务一:常规整合 (基于maven构建)

最近工作中需要用到定时任务的功能,虽然Spring3也自带了一个轻量级的定时任务实现,但感觉不够灵活,功能也不够强大.在考虑之后,决定整合更为专业的Quartz来实现定时任务功能. 首先,当然是添加依赖的jar文件,我的项目是maven管理的,以下的我项目的依赖: <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>3.

Spring结合Quartz实现多任务定时调用

http://blog.csdn.net/oracle_microsoft/article/details/4412502 Quartz框架提供了丰富的任务调度支持,比如,在 何时执行何种任务,它是一个开源的由OpenSymphony维护的项目,开发者能够在Java EE,或单独的Java SE应用中使用它.无论是简单的任务调度,还是复杂的企业级应用,Quartz都能够很好地胜任.其中,这些任务可以是普通POJO,甚至还可以是EJB 3.0组件. 如果开发者需要开发如下方面的应用,则Quartz

spring整合quartz并持久化

spring整合quartz有两种方式: 一.常见是使用配置文件,将定时任务保存到内存中 简单示例: <!-- 短信催还提醒任务调度 --> <bean id="overdueRecall" class="com.sursen.souba.ddlibserve.quartz.OverdueRecallTimerTask" /> <!--定义定时执行overdueRecallTimerTask 这个bean中的overdueRecall(

Spring整合Quartz实现定时任务调度

一. 核心类 1. Job: 表示一个工作, 具体的业务处理都在这里. 2. JobDetail: 表示一个具体的可执行的调度程序. 3. Trigger: 用于调度参数的配置(什么时候去调用Job). 4. Scheduler: 表示一个调度容器, 容器中有一个线程池, 用来并行调度执行每个作业, 一个调度容器中可以注册多个JobDetail和Trigger. 二. 整合spring 1. 代码结构图: 2. applicationContext.xml <?xml version="1

用Quartz处理定时执行的任务

这次做的项目中,有一部分功能需要实现定时执行.呃,这样说可能有点笼统,打个比方吧.例如用户在登录的时候,连续输错3次密码后,系统会将该用户冻结,不再允许该用户登录系统,等到了晚上零晨时分,再为所有被冻结的用户解冻,这样,用户在第二天又可以正常登录系统了.这样做是为了用户帐号安全,可有效防止暴力破解密码...呃,好像跑题了,咱还是回到正题来.在这里我们只关心怎么能实现每天晚上零晨准时执行为用户解冻的程序. 第一时间,我想到了JDK自带的Timer和TimerTask类,可经过测试,要想做到精准的定

Spring整合Quartz定时发送邮件

功能描述:刚开始接触Quartz,试着用Quartz整合spring实现每隔一分钟发送一封邮件连续发送10次 核心jar: 邮件发送:commons-email-1.2.jar mail.jar(必须的) quartz:quartz-all-1.8.3.jar quartz-all-1.8.3/lib/下所有jar spring:spring-context-support.ajr(必须的) 只贴出核心代码: Email发送:使用apache commons-email跟mail package

基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度

在之前的文章<推荐一个简单.轻量.功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler>和<简单.轻量.功能非常强大的C#/ASP.NET定时调度任务执行管理组件–FluentScheduler之实例篇>中,我们认识和了解了FluentScheduler这款轻量的定时任务调度执行组件.今天再给大家介绍一款关于定时任务调度执行的组件–Quartz.NET,Quartz.Net是Java版Quartz的.NET实现. 相对FluentSchedule

spring 基于quartz框架实现定时周期执行

Quartz 是一个开源的作业调度框架,它完全由 Java 写成,并设计用于 J2SE 和 J2EE 应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它来为执行一个作业而创建简单的或复杂的调度.本系统结合通过 Spring 来集成 Quartz . 别忘了spring中的jar包哦 quartz-all.zip 项目中使用到 在网上收集整理了一番 package com.task.quartz; import java.text.SimpleDateFormat; import java.u