quartz——定时任务

popcorn丫 popcorn丫     2022-09-14     790

关键词:

Quartz之前版本的使用:http://blog.csdn.net/huihuimimi17/article/details/8215779

 

2之后的版本使用:简单使用

package com.bxw;

import java.util.Date;

import org.quartz.DateBuilder;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;

public class Demo1Test {
    public void run() throws SchedulerException{
        System.out.println("---初始化ing---");
         //通过SchedulerFactory工厂类获取Scheduler  
        SchedulerFactory sf = new StdSchedulerFactory();
        
        System.out.println("---初始化完成---");
        
        //任务执行时间
//      Date runTime = DateBuilder.evenMinuteDate(new Date());  
        Date runTime = DateBuilder.evenSecondDateAfterNow(); 
        
        System.out.println("---将job加入Scheduler中---");
        //用于描叙Job实现类及其他的一些静态信息,构建一个作业实例  
        JobDetail jd = JobBuilder.newJob(Demo1.class).withIdentity("testDemo1","group1").build();
        
        //描叙触发Job执行的时间触发规则,Trigger实例化一个触发器  
        Trigger trigger = TriggerBuilder.newTrigger()//创建一个新的TriggerBuilder来规范一个触发器 
                        .withIdentity("trigger1","group1")//给触发器起一个名字和组名
                        //.startNow()//立即执行
                        .startAt(runTime)//设置触发时间
                        .withSchedule(
                                    SimpleScheduleBuilder.simpleSchedule()
                                    .withIntervalInSeconds(2)//时间间隔
                                    //.withRepeatCount(5)//重复次数,将执行6次
                                ).build();//产生触发器
          //运行容器,使用SchedulerFactory创建Scheduler实例  
        Scheduler sched = sf.getScheduler();
        
        //向scheduler添加一个job和trigger
        sched.scheduleJob(jd,trigger);
        System.out.println(jd.getKey()+"运行在:"+runTime);
        sched.start();
    }
    
    public static void main(String[] args) throws SchedulerException {
        Demo1Test dt = new Demo1Test();
        dt.run();
    }
}

步骤:1.得到一个Sceduler    2.新建一个作业    3.新建一个触发器    4.想Scheduler添加作业和触发器    5.sceduler.start()

 

工具类:

package com.bxw;

import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
 * 任务调度公共类
 * @remark
 * @author feizi
 * @time 2015-3-23下午3:04:12
 */
public class QuartzUtil {

    private final static String JOB_GROUP_NAME = "QUARTZ_JOBGROUP_NAME";//任务组
    private final static String TRIGGER_GROUP_NAME = "QUARTZ_TRIGGERGROUP_NAME";//触发器组
    private static Logger log = LoggerFactory.getLogger(QuartzUtil.class);//日志

    /**
     * 添加任务的方法
     * @param jobName  任务名
     * @param triggerName  触发器名
     * @param jobClass  执行任务的类
     * @param seconds  间隔时间
     * @throws SchedulerException
     */
    public static void addJob(String jobName,String triggerName,Class<? extends Job> jobClass,int seconds) throws SchedulerException{
        log.info("==================initialization=================");

        //创建一个SchedulerFactory工厂实例
        SchedulerFactory sf = new StdSchedulerFactory();

        //通过SchedulerFactory构建Scheduler对象 
        Scheduler sche = sf.getScheduler();

        log.info("===================initialize finshed===================");

        log.info("==============add the Job to Scheduler==================");  

        //用于描叙Job实现类及其他的一些静态信息,构建一个作业实例
        JobDetail jobDetail = JobBuilder.newJob(jobClass)
                                .withIdentity(jobName, JOB_GROUP_NAME)
                                .build();

        //构建一个触发器,规定触发的规则
        Trigger trigger = TriggerBuilder.newTrigger()//创建一个新的TriggerBuilder来规范一个触发器
                            .withIdentity(triggerName, TRIGGER_GROUP_NAME)//给触发器起一个名字和组名
                            .startNow()//立即执行
                            .withSchedule(
                                SimpleScheduleBuilder.simpleSchedule()
                                .withIntervalInSeconds(seconds)//时间间隔  单位:秒
                                .repeatForever()//一直执行
                            )
                            .build();//产生触发器

        //向Scheduler中添加job任务和trigger触发器
        sche.scheduleJob(jobDetail, trigger);

        //启动
        sche.start();
    }

    /**
     * 测试
     * @param args
     * @throws SchedulerException 
     */
    public static void main(String[] args) throws SchedulerException {
        QuartzUtil.addJob("任务一", "触发器一", Demo1.class, 2);
        QuartzUtil.addJob("任务二", "触发器二", Demo2.class, 4);
    }
}

 

spring+quartz集群配置,spring定时任务集群,quartz定时任务集群

Spring+quartz集群配置,Spring定时任务集群,quartz定时任务集群>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>& 查看详情

spring定时任务quartz

spring定时任务quartz背景介绍  使用spring做项目,需要定时的完成一系列的任务动作处理,执行相应的代码逻辑,使用spring的Quartz组件可以完成定时任务的功能,作者强烈推荐使用Quartz2.x版本。原理如下:一、环境介绍  IDE:ec... 查看详情

quartz——定时任务

Quartz之前版本的使用:http://blog.csdn.net/huihuimimi17/article/details/8215779 2之后的版本使用:简单使用packagecom.bxw;importjava.util.Date;importorg.quartz.DateBuilder;importorg.quartz.JobBuilder;importorg.quartz. 查看详情

javaweb定时任务---quartz

...的记录下Timer定时的用法,但是在此次项目中,选择的是quartz来完成定时操作任务的。两者都可以完成定时操作,但是spring可以整合quartz,并且配置起来也比较简便,还可以同时跑多个任务。就选择了quartz,quartz的用法也很强大,... 查看详情

springboot入门:集成quartz定时任务

...章续《SpringBoot入门(八):集成RabbitMQ消息队列》,关于Quartz定时任务请参考《Quartz的基本使用之入门(2.3.0版本)》springboot实现定时任务,除了集成Quartz外,还可以直接使用scheduler注解。使用1个简单的注解就可以完成,为什... 查看详情

quartz实现动态定时任务

...务的执行,而且要求定时周期是不固定的,所以就用到了quartz来实现这个功能;    spring3.1以下的版本必须使用quartz1.x系列,3.1以上的版本才支持quartz2.x,不然会出错。至于原因,则是spring对于quartz的支持实现,org... 查看详情

quartz定时任务第一次不执行

随时往quartz数据库中添加定时任务,通过一个定时任务每天定点去启动quartz数据库中的任务,但是,quartz数据库中的第一次添加的任务不会执行,比如:0589**?,添加这个任务,必须到明天的这个点才执行。请高手指点,谢谢。... 查看详情

quartz定时任务框架之实例

importorg.quartz.*;importorg.quartz.impl.StdSchedulerFactory;importjava.util.Date;publicclassMyJobimplementsJob{publicvoidexecute(JobExecutionContextjobExecutionContext)throwsJobExecutionException{Sys 查看详情

分布式定时任务调度框架-quartz学习及实战记录笔记

目录1.Quartz入门2.Quartz中的常用组件之间的关系3.Trigger触发器的介绍4.Quartz配置资源介绍5.Quartz监听器6.SpringBoot整合Quartz实现动态的创建或删除定时任务并将定时调度任务持久化到MySQL以及Quartz集群配置7.分布式定时任务调度框架学... 查看详情

分布式定时任务调度框架-quartz学习及实战记录笔记

目录1.Quartz入门2.Quartz中的常用组件之间的关系3.Trigger触发器的介绍4.Quartz配置资源介绍5.Quartz监听器6.SpringBoot整合Quartz实现动态的创建或删除定时任务并将定时调度任务持久化到MySQL以及Quartz集群配置7.分布式定时任务调度框架学... 查看详情

springboot集成quartz动态定时任务

SpringBoot集成Quartz动态定时任务项目中需要用到定时任务,考虑了下java方面定时任务无非就三种:用Java自带的timer类。稍微看了一下,可以实现大部分的指定频率的任务的调度(timer.schedule()),也可以实现关闭和开启(timer.ca... 查看详情

quartz将定时任务持久化到数据库

...demo是将定时任务的信息保存在内存中的,见以下配置org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore  如果,我们需要在系统意外(或非意外)重新启动后,仍保留定时任务信息,可以使用数据库存储定时任务信息。org.quartz.jobStore.... 查看详情

quartz定时任务学习简单任务

学习quartz首先了解三个概念: 调度器:负责调度作业和触发器;触发器:设置作业执行的时间、参数、条件等;(简单触发器和Cron触发器)作业:定时任务内容,被执行的程序;下载必要的jar包,直接去官网下载,将quartz-x... 查看详情

quartz2.2动态添加修改和删除定时任务

QuartzManager.Java 动态添加、修改和删除定时任务管理类 importorg.quartz.CronScheduleBuilder;importorg.quartz.CronTrigger;importorg.quartz.Job;importorg.quartz.JobBuilder;importorg.quartz.JobDetail;importorg.q 查看详情

quartz定时任务使用小记(11月22日)

骤然接触quartz,先从小处着手,why,what,howquartz定时任务:  为什么使用quartz定时任务,以及定时任务在实际应用场景下的特定需求。  1.用户方面的需要,为了提供更好的使用体验,例如,针对用户注册的监听,最终得到... 查看详情

quartz源码解读-任务是如何定时执行的

例子 importorg.quartz.*;importorg.quartz.impl.StdSchedulerFactory;importjava.util.Date;/***quartz定时器测试**@authorleizhimin2009-7-238:49:01*/classMyJobimplementsJobpublicvoidexecute(JobExecutionContext 查看详情

定时任务框架-quartz(代码片段)

依赖 <!--定时任务jar--><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.1.7</version></dependency>  查看详情

对quartz定时任务的初步认识

今天就谈一谈我前两天自学的quartz定时任务吧,我对quartz定时任务的理解,就是可以设定一个时间,然后呢,在这个时间到的时候,去执行业务逻辑,这是我的简单理解,接下来看代码是如何实现的,首先有两种实现的方式,一... 查看详情