quartz定时任务_演示版01

预置:

quartz共4个设计模式:Builder模式,Factory模式,组件模式,链式模式

体系结果:核心3个类JobDetail , trigger , scheduler

重要组成部分:Job接口、JobBuilder、JobDetail、JobStore

                         TriggerBuilder、Trigger

Scheduler

接听器:JobListener、TriggerListener、SchedulerListener

ThreadPool (线程池,解决并发问题)

Calendar (排除日程表中某些时间点)

=====================================================================

1.新建maven项目

2.在http://www.mvnrepository.com/中找到quartz的jar包依赖代码引入pom.xml文件

<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>

3.实现job接口的execute方法:

import java.text.SimpleDateFormat;
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class helloJob implements Job {
//实现job接口execute方法具体内容
public void execute(JobExecutionContext arg0) throws JobExecutionException{
//打印当前执行时间 格式:2017-01-01 00:00:00
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("current exec time is :"+sdf.format(date));

//编写具体业务逻辑
System.out.println("helloJob类 实现了 Job接口的execute方法");
}
}

4.main方法中实现任务的创建运行

import java.text.SimpleDateFormat;
import java.util.Date;
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;

/*
* 20180103 ver1.0
*/
public class helloSchedule {

public static void main(String[] args) throws SchedulerException {
// TODO Auto-generated method stub

// 创建一个JobDetail实例 将HelloJob类添加到JobDetail中
JobDetail jobDetail = JobBuilder.newJob(helloJob.class)
.withIdentity("myJob", "jobDetailGroup")
.build();
//创建一个Trigger实例,定义该job立即执行,每隔两秒钟重复执行一次,一直不停
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity("myTrigger","triggerGroup")
.startNow().withSchedule(
SimpleScheduleBuilder.simpleSchedule()
.withIntervalInSeconds(2)
.repeatForever())
.build();
//创建Schduler实例
SchedulerFactory sfFactory = new StdSchedulerFactory();
Scheduler scheduler = sfFactory.getScheduler();
scheduler.start();

//打印当前时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("current scheduler time is :"+sdf.format(date));
scheduler.scheduleJob(jobDetail, trigger);

}

}

5.运行结果:

current scheduler time is :2018-01-03 15:08:54
current exec time is :2018-01-03 15:08:54
helloJob类 实现了 Job接口的execute方法
current exec time is :2018-01-03 15:08:56
helloJob类 实现了 Job接口的execute方法
current exec time is :2018-01-03 15:08:58
helloJob类 实现了 Job接口的execute方法
current exec time is :2018-01-03 15:09:00
helloJob类 实现了 Job接口的execute方法
current exec time is :2018-01-03 15:09:02
helloJob类 实现了 Job接口的execute方法
current exec time is :2018-01-03 15:09:04
helloJob类 实现了 Job接口的execute方法
current exec time is :2018-01-03 15:09:06
helloJob类 实现了 Job接口的execute方法

原文地址:https://www.cnblogs.com/imlvbu/p/8184405.html

时间: 2024-11-06 20:07:49

quartz定时任务_演示版01的相关文章

SpringBootRESTfulAPI平台项目-演示版01

项目实现功能:接口测试用例自动化 ===========================================表设计阶段================================== 1.设计数据库及表(4张表) 数据库名:RESTfulAPI 表名:projectTable  字段:id,projectName,userName,createTime,onlineTime,requireDoc,redmineAddress,mark ; 表名:caseTable     字段:

DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务,与前篇中的不同,在DSAPI中,指令版同时包含了服务端与客户端. 先来看一下使用方法,几乎不需要太多的说明,当然,它是支持事件的.所谓指令版,即服务端和客户端收发都是基于短字串的,比如客户端发一个"hello",服务端收到这个指令后返回一个"Hi".为确保传输的数据有

Spring quartz定时任务service注入问题

今天想单元测试一下spring中的quartz定时任务,一顿折腾,到最后总是发现job类里注入的service为null.一开始还以为spring的配置问题,各种找原因,最后还是确定是没有注入. 就去网上搜搜吧.也找出来一些眉目.简单的理解这个原因是job是在quartz中实例化出来的,不受spring的管理.所以就导致注入不进去了.参考这个文章 http://www.tuicool.com/articles/Qjyamu 找着试试的态度,就按照文章里说的.new一个类 public class

js仿百度文库文档上传页面的分类选择器_第二版

仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同时使用多个分类选择器: 此版本把HTML,CSS,以及图片都封装到"category.js"中,解决因文件路径找不到样式及图片的问题: 源码下载地址:http://download.csdn.net/detail/testcs_dn/7290577 初始状态,一个页面使用两个,可以初始化之前选中的分类: 选择状态: 当选中一个分类后,会触发"onChange"事件,如上图中的"您选择的分类编

Quartz定时任务的并行与串行

Quartz定时任务的执行策略有并行和串行之分. 所谓并行是指多个任务同时运行的情况,即若两个任务的执行时间存在重叠,两个任务同时运行的情况. 串行则是指一个任务必须等其前一个任务执行完毕之后再执行的策略. Spring集成Quartz时,控制定时任务的并行和串行是通过concurrent(译:同时发生的; 同时完成的; 同时存在的)属性实现的. 当任务系统存在多个定时任务时,任务执行很可能会存在时间上的重叠,通过设置concurrent属性为false,可以避免任务并行执行,job只能在其前一

常用演示版保护技术

1.序列号保护方式 GetWindowText,GetDlgItemText,GetDlgItemInt MessageBox,MessageBoxEx,DialogBoxParam,CreateDialogIndirectParam,DialogBoxIndirectParam,CreateDialogParam, MessageBoxIndirect,ShowWindow 常用演示版保护技术,布布扣,bubuko.com

解决金蝶未检测到K/3许可文件,并且该账套已超过演示版期限问题

为什么会出现这个问题呢 你用的金蝶没有授权 金蝶有几个月的免费期,也就是演示版,当结账超过几个月,你的不是授权软件,就会出现这个问题 像我们做金蝶开发的,不可能取购买正版的自己用,但要开发不能看,该怎么办 icinvbal   icbal   数据库上删除这两张表就OK了(切记是给你玩的账套,不是正常账套) delete from icinvbal delete from icbal

Quartz定时任务和IIS程序池闲置超时时间冲突解决方案

一.问题描述 Bs项目中用Quartz功能执行一个定时任务(每隔5分钟执行一个Job),正常情况,Quartz定时任务会5分钟执行一次,但IIS程序池闲置 超时默认为20分钟,造成的结果是:定时任务只执行了4次.那么怎么解决程序池闲置超时引进Quartz定时任务停止执行问题? 二.解决方案方案一:设置IIS默认闲置超时为1740(跟程序池默认回收时间1740)方案二:IIS服务器规定的时间内,定时向服务器取一次数据 三.方案介绍1)方案一:设置IIS默认闲置超时为1740(跟程序池默认回收时间1

MPLS VPN 高级教程(张洋讲解演示版)

MPLS VPN 高级教程(张洋讲解演示版) 课程目标: ü        LDP的实施和特性 ü        PE-CE路由协议以的实施,以及它们在MPLS VPN中的特性: ü        如何通过MPLS网络运载IPv6,6PE和6VPE的含义和它的运作过程: ü        MPLS VPN的各种配置方案 适合人群:希望深入理解MPLS-VPN的人群. 课程位置: http://edu.51cto.com/course/course_id-5737.html 具体内容:   第一课