Quartz(1)----入门示例
1、什么是Quartz?
Quartz是一个完全由java编写的开源作业调度框架。
2、Quartz是用来做什么的?
Quartz是一个任务调度框架,比如你会遇到如下问题:
1)、每月25号,信用卡自动还款
2)、每天早上7:30闹钟
这些问题总结起来就是:在某一个有规律的时间点干某件事情,并且时间的触发条件可以非常复杂(比如每月最后一个工作日的17:50),复杂到需要一个专门的框架来干这件事。而quartz就是干这件事的,我们可以给它一个触发条件的定义,它负责到了时间点,触发相应的job起来干活。
3、Quartz入门示例
要求每隔2秒钟,打印hello world!
第一步、新建maven工程,结构如下图:
第二步、在pom.xml中导入所需要的jar包,如下:
<dependencies><!-- https://mvnrepository.com/artifact/org.quartz-scheduler/quartz --><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.1</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies>
第三步、HelloJob代码如下:
package com.cn.quartz;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;import java.text.SimpleDateFormat;
import java.util.Date;/*** 实现Job类,重写execute()方法* */
public class HelloJob implements Job {@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {//打印当前执行的时间Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");System.out.println("当前时间:"+sdf.format(date));//编写具体的业务逻辑System.out.println("hello world!");}
}
第四步、HelloScheduler代码如下:
package com.cn.quartz;import org.quartz.*;
import org.quartz.impl.StdSchedulerFactory;import java.text.SimpleDateFormat;
import java.util.Date;/*** 作业调度器* */
public class HelloScheduler {public static void main(String[] args) throws SchedulerException {//创建一个JobDetail实例,将该实例与HelloJob绑定JobDetail jobDetail= JobBuilder.newJob(HelloJob.class).withIdentity("myJob","group1").build();//创建一个Trigger实例,定义该job立即执行,并且每隔2秒钟重复执行一次Trigger trigger= TriggerBuilder.newTrigger().withIdentity("myTrigger","group1").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();//创建Schedule实例SchedulerFactory schedulerFactory=new StdSchedulerFactory();Scheduler scheduler=schedulerFactory.getScheduler();scheduler.start();Date date=new Date();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");System.out.println("当前时间:"+sdf.format(date));scheduler.scheduleJob(jobDetail,trigger);}
}
第五步、测试
运行main方法,结果如下图:
Quartz(1)----入门示例相关推荐
- Quartz 之入门示例
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 环境:XP+Myeclipse6.5+JDK1.6 quartz官网:http://www.qua ...
- [WCF编程]1.WCF入门示例
一.WCF是什么? Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,整合了原有的windows通讯的 .net Remotin ...
- BizTalk 2006 简单入门示例程序(附源项目文件下载)
BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...
- Apache Camel框架入门示例
2019独角兽企业重金招聘Python工程师标准>>> Apache Camel是Apache基金会下的一个开源项目,它是一个基于规则路由和中介引擎,提供企业集成模式的Java对象的 ...
- OUYA游戏开发核心技术剖析OUYA游戏入门示例——StarterKit
第1章 OUYA游戏入门示例--StarterKit StarterKit是一个多场景的游戏示例,也是OUYA官方推荐给入门开发者分析的第一个完整游戏示例.本章会对StarterKit做详细介绍,包 ...
- python爬虫入门实例-终于领会python爬虫入门示例
随着人工智能 大数据的火热 Python成为了广大科学家和普通大众的学习语言.在学习Python的过程中 有很多人感到迷茫 不知道自己该从什么地方入手,今天我们就来说一些新手该如何学习Python编程 ...
- 【Unity 3D 游戏开发】Unity3D 入门 - 工作区域介绍 与 入门示例
一. 工作区域详解 1. Scence视图 (场景设计面板) scence视图简介 : 展示创建的游戏对象, 可以对所有的游戏对象进行 移动, 操作 和 放置; -- 示例 : 创建一个球体, 控制摄 ...
- Castle Active Record for .NET2.0快速入门示例
一.创建Web工程 创建一个Web站点或者Web应用程序,添加对Castle.ActiveRecord.dll的引用. 二.创建需要持久化的业务实体 在.NET2.0下,由于引入了泛型,创建业务实体比 ...
- Spring MVC 入门示例讲解
在本例中,我们将使用Spring MVC框架构建一个入门级web应用程序.Spring MVC 是Spring框架最重要的的模块之一.它以强大的Spring IoC容器为基础,并充分利用容器的特性来简 ...
最新文章
- 基于用例点来度量软件规模并管理进度 之一
- 关于H3C路由配置VLAN的问题
- Optional 处理空指针
- 阿里云上遇到: virtual memory exhausted: Cannot allocate memory
- mysql字符串比较数字
- linux 下安装adobe flash的关键。
- C++ 著名程序库 概览
- 机器学习之使用Python完成逻辑回归
- centos删除文件不释放_Linux运维知识之linux centos下彻底删除文件 解决删除文件文件夹硬盘空间不释放不减少...
- JFinal实现原理
- 汽车抛负载7637-5A/5B测试介绍
- 微信网页授权页面获取不到code
- 虚拟内存设置(可扩展板载内存)
- TensorFlow-similarity 学习笔记13
- 优秀网页翻译:DS3231与 PCF2129 RTC比较
- 小程序配置“企业微信客服”的流程步骤
- 【计算智能】模糊控制(一)模糊集合及其基本运算
- ffmpeg解析视频的每一帧(java )
- 基于JAVA汽车出租平台计算机毕业设计源码+数据库+lw文档+系统+部署
- ANF框架小结、网络概念步骤详情及开发源码