什么是Quartz ?

Quartz是一个功能丰富开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统。Quartz可用于创建执行数十,数百甚至数十万个作业的简单或复杂的计划; 任务定义为标准Java组件的任务,可以执行任何可以对其进行编程的任何内容。Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群。

Quartz 接口

  • Scheduler - 调度器,与调度程序进行交互的主要API。
  • Job - 你希望由调度程序执行的组件实现的接口。
  • JobDetail - 用于定义作业的实例,一个具体的类。
  • Trigger -定义给定执行计划作业的组件,通常用于定义作业何时执行。
  • JobBuilder - 用于定义/构建JobDetail实例,定义Job的实例.
  • TriggerBuilder - 用于定义/构建触发器实例.

scheduler 负责管理trigger 调度job

Quartz 例子

1.首先根据项目要求导入quartz包,项目采用maven构造,

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

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

2.建立 quartz.properties 文件

设置可运行线程数量

org.quartz.threadPool.threadCount = 2

3.创建HelloWorldJob 类 实现Job接口,实现execute方法,

public void execute(JobExecutionContext context) throws JobExecutionException {System.out.println("Job HelloWorld!");}

  

4. 创建测试类 QuartzTest.java

Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();    //创建任务 JobDetail job = JobBuilder.newJob(HelloWorldJob.class).withIdentity("myJob", "group").build();//创建任务触发器 设置任务条件:立刻开始任务,每两秒执行一次,永远执行Trigger trigger = TriggerBuilder.newTrigger().withIdentity("myTrigger", "group").startNow().withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(2).repeatForever()).build();//绑定
            scheduler.scheduleJob(job, trigger);//开始启动任务
            scheduler.start();//休眠10sThread.sleep(10000);//结束任务scheduler.shutdown();

5.项目运行结果

项目源代码:https://github.com/yldzxz/test-quartz.git

转载于:https://www.cnblogs.com/hkzklt/p/6905142.html

Quartz框架初学1相关推荐

  1. Quartz 框架快速入门(二)

    尽可能的用声明式处理软件配置,其次才考虑编程式的方式.在上一篇<Quartz 框架快速入门(一)>中,如果我们要在 Job 启动之后改变它的执行时间和频度,必须去修改源代码重新编译.这种方 ...

  2. Quartz框架多个trigger任务执行出现漏执行的问题分析--转

    原文地址:http://blog.csdn.net/dailywater/article/details/51470779 一.问题描述  使用Quartz配置定时任务,配置了超过10个定时任务,这些 ...

  3. Quartz 框架快速入门(四)

    Spring的scheduling.quartz包中对Quartz框架进行了封装,使得开发时不用写任何QuartSpring的代码就可以实现定时任务.Spring通过JobDetailBean,Met ...

  4. Quartz 框架快速入门(三)

    在前面两篇文章中简单介绍了在java应用程序中如何使用Quartz框架,这一篇中我们将看到如何在web环境下通过配置文件来完成Quartz的后台作业调度,而不必手工去创建Trigger和Schedul ...

  5. SpringBoot与quartz框架实现分布式定时任务

    前言 quartz的分布式调度策略是以数据库为边界资源的一种异步策略.各个调度器都遵守一个基于数据库锁的操作规则从而保证了操作的唯一性. 在quartz的集群解决方案里有张表scheduler_loc ...

  6. Quartz框架学习(1)—核心层次结构

    Quartz框架学习 Quartz(任务调度)框架的核心组件: job:任务.即任务调度行为中所要调度的对象. trigger:触发器.是什么促使了一个任务的调度?当然是时间.这也算事件驱动类型程序. ...

  7. Quartz框架应用(1)

    为什么80%的码农都做不了架构师?>>>    在你使用调度器之前,需要借助一些具体的例子去理解. 你可以使用SchedulerFactory类来达到程序调度的目的. 有一些Quar ...

  8. Quartz框架调用Demo

    Quartz框架调用Demo 任务调度在JAVA应用程序中运用的十分普遍,掌握QUARTZ是必备的技能; 官网:http://www.quartz-scheduler.org/ 下载最新1.80资源包 ...

  9. Quartz框架介绍

    一.Quartz概述: Quartz是一个完全由Java编写的开源任务调度的框架,通过触发器设置作业定时运行规则,控制作业的运行时间.其中quartz集群通过故障切换和负载平衡的功能,能给调度器带来高 ...

最新文章

  1. LinearAlgebra_4
  2. (邓爱萍)类 对象 例题
  3. 解决 json_encode 中文乱码
  4. LeetCode() Largest Number
  5. MySQL之优化器、执行计划、简单优化
  6. Android 系统性能优化(55)---Android 性能优化之内存优化
  7. 新版手机浏览器_Firefox手机浏览器app下载安装_Firefox手机浏览器软件最新版免费下载...
  8. c语言那些细节之little-endian和big-endian
  9. VC连接SQL2005
  10. TextCNN代码解读及实战
  11. 用扫码枪收款钱到哪里_微信官方收款助手小程序商业版收款码入驻申请流程
  12. [翻译]X窗口管理器的原理剖析(一)
  13. 【JavaScript】JS高级-面向对象编程
  14. CIFAR10图像分类ResNet模型实战(pytorch)
  15. java 查询微信支付订单
  16. Encoder-decoder模型及Attention机制
  17. 建立网站费用大概需要多少钱?如何计算建立网站的成本?
  18. 粉丝说SpringBoot集成validation校验参数有坑,我试了试
  19. 南京师范大学计算机学院师资,南京师范大学计算机与电子信息学院导师教师师资介绍简介-陈燚...
  20. FFmpeg源码分析:swr_convert()音频格式转换

热门文章

  1. DDos防御工具DDoS-Defender-v2.1.0
  2. 一起谈.NET技术,Visual Studio对程序集签名时一个很不好用的地方
  3. mac自带php在哪里看,如何开启MacOS11系统的自带的PHP环境
  4. 下三角矩阵的逆矩阵_上三角或下三角矩阵的逆矩阵能否简便方法求出??只有主副对角线不为0的矩阵能否直接写出逆矩阵。...
  5. 欧易OKEx交易大数据:BTC合约多空持仓人数比0.98,合约持仓总量为24.90亿美元
  6. 数据:以太坊2.0合约余额新增1.16万ETH
  7. SAP License:新总帐—Coding Block
  8. 《如何搭建小微企业风控模型》第九节 单变量分析(上)节选
  9. 在线云客服管理系统、会话管理、访客管理、客户管理、工单管理、会话记录、考勤统计、数据报表、工单设置、全局设置、转人工服务、自动回复、客户标签、客服监控、客服系统、前端会话、客服管理、在线客服、人工客服
  10. asp.net常见数据类型