Quartz教程一:使用quartz

原文链接 | 译文链接 | 翻译:nkcoder | 校对:方腾飞

本系列教程由quartz-2.2.x官方文档翻译、整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处,欢迎指正;有兴趣研究源码的同学,可以参考我对quartz-core源码的注释(进行中)

Scheduler在使用之前需要实例化。一般通过SchedulerFactory来创建一个实例。有些用户将factory的实例保存在JNDI中,但直接初始化,然后使用该实例也许更简单(见下面的示例)。

scheduler实例化后,可以启动(start)、暂停(stand-by)、停止(shutdown)。注意:scheduler被停止后,除非重新实例化,否则不能重新启动;只有当scheduler启动后,即使处于暂停状态也不行,trigger才会被触发(job才会被执行)。

下面的代码片段,实例化并启动一个scheduler,调度执行一个job:

  SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();

  Scheduler sched = schedFact.getScheduler();

  sched.start();

  // define the job and tie it to our HelloJob class
  JobDetail job = newJob(HelloJob.class)
      .withIdentity("myJob", "group1")
      .build();

  // Trigger the job to run now, and then every 40 seconds
  Trigger trigger = newTrigger()
      .withIdentity("myTrigger", "group1")
      .startNow()
      .withSchedule(simpleSchedule()
          .withIntervalInSeconds(40)
          .repeatForever())
      .build();

  // Tell quartz to schedule the job using our trigger
  sched.scheduleJob(job, trigger);

你看到了,quartz的使用并不难。教程二会简要地介绍job和trigger,以及quartz的API,然后你会更好地理解上面的示例。

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: Quartz教程一:使用quartz

时间: 2025-01-02 06:55:47

Quartz教程一:使用quartz的相关文章

quartz教程一

官网http://www.quartz-scheduler.org/ quartz的设计模式 2.1 工厂模式 2.2 builder模式 2.3 链式调用 2.4 组件模式 核心概念 3.1 任务Job job 就是想要实现的任务类,每一个job必须实现org.quartz.job接口,且只需实现接口定义的execute()方法. 3.2 触发器Trigger Trigger为你执行任务的触发器,比如你想要每天定时3点发送一份统计邮件,Trigger建辉设置3点执行该任务,Trigger主要包

highcharts实例教程一:结合php与mysql生成折线图

Highcharts是一款纯javascript和html5编写的图表库,不仅几乎能兼容所有pc浏览器,而且对ios和android手机端的兼容 性也不错,它能够很简单便捷的在Web网站或Web应用中添加交互性的图表,Highcharts目前支持直线图.折线图.面积图.柱状图.饼图.散点图 等多达28种不同类型的图表,还支持3D立体图表的生成,可以满足你对Web图表的任何需求 !而且Highcharts对学习者.非商业机构是免费使用的. 案例场景:要求针对技术cto网站,直观地显示一周网站pv.

ibatis入门教程一

这几天研究ibatis玩,参考一篇贴子进行安装配置:蓝雪森林 选择这个帖子来跟随配置是因为这个帖子看着比较干净,但是我仍旧在配置得过程中出现了好几个问题,所以我决定在这个帖子的基础上将更多细节加上,做一个傻瓜教程. 一.前期准备 虽然ibatis能处理多种数据库,不过初学者还是比较适应mysql,因此我选择mysql作为我的数据载体.另外我准备建的是一个普通的java 工程,并采用maven命令行来建立这个工程.所以在这之前,电脑上需要安装maven和mysql. 二.工程建立 ①使用maven

php教程一,变量

php是一种动态脚本语言,比较适合web开发. php支持8种变量数据类型: 四种标量类型: boolean(布尔型) integer(整型) float(浮点型,也称作 double) string(字符串) 两种复合类型: array(数组) object(对象) 最后是两种特殊类型: resource(资源) NULL(无类型) 变量你可以这样理解,假如php是一个人的话,变量就是各种类型的衣服,设定变量的用途就是在合适的场合穿上合适的衣服 变量的重点就是在于在变字,它不是一个固定的值,我

C#系列教程一:C#的前世今生,VS了解

我的学习历程 回头想想,其实没碰windows的时间真的很长了.我大概是两年前的时候开始做iOS开发的,2012年3月份吧.从那以后就很少用到windows系统.现在工作都用mac机器,对windows的好感也越来越淡,再加上坑爹的windows8,我本来以为我再也不可能碰windows了,没想到最近的项目又让我不得不重新拾起以前的windows编程,继续C#开发. 我大二的时候开始接触windows编程,那时候VC++很流行,感觉C++也不错,自己可以手动画一个窗体有点狂拽炫酷叼.以前有画过类

Quartz使用(1) - 初识quartz

1. 背景 由于最新的工作项目中,需要使用quartz框架,以完成相关的任务的定时执行.经过两周的调研与使用,本系列博客会参考官网及网上相关博客,结合工作项目中的使用,详细介绍quartz的各个方面.如果有相关的错误,烦请不吝赐教.如果有相关的疑惑,可以评论,本人会抽空解答. 2. quartz是什么? Quartz is a richly featured, open source job scheduling library that can be integrated within vir

redis学习教程一《Redis的安装和配置》

redis学习教程一<Redis的安装和配置> Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作. 支持丰富的数据类型 - Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等.这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决. 操作具有原子性 - 所有Redis操作都是原子操作,这确保如果

kettle系列教程一

 1.kettle介绍 kettle是一个ETL(Extract, Transform and Load抽取.转换.载入)工具,ETL工具在数据仓库项目使用非常频繁,kettle也可以应用在以下一些场景: 在不同应用或数据库之间整合数据 把数据库中的数据导出到文本文件 大批量数据装载入数据库 数据清洗 集成应用相关项目是个使用 kettle使用非常简单,通过图形界面设计实现做什么业务,无需写代码去实现,因此,kettle是以面向元数据来设计: kettle支持很多种输入和输出格式,包括文本文

quartz配置参数org.quartz.jobStore.misfireThreshold含义解释

配置定时任务参数 quartz.properties文件时 需要配置jobStore的超过时间数 默认为60秒(这里单位为毫秒) org.quartz.jobStore.misfireThreshold = 60000 这个参数一般在多线程池条件下无效. 产生misfire失败的条件: 单线程执行定时任务 第一个任务的执行完后的结束时间 减去 第二个任务的开始时间 = 时间间隔 时间间隔 大于 60s时, 第二个任务不会被执行. 这个叫做失败临界值,或者临界时间 例如 设置quartz.prop