quartz--job

  job是执行任务所需的Java类。

  在quartz中job分为两种,有状态和无状态的。job是无状态的,statefuljob是有状态的。

  通过实现job或者statefuljob接口就能定义一个自己的工作类。这两个接口都要求实现类实现execute方法

public void execute(JobExecutionContext context)
throws JobExecutionException;

  在job被Scheduler调用时,会传递一个JobExecutionContext给execute方法,它能访问job的信息。

  jobExecutionContext能获取到JobDetail对象,jobDerail对象保存了job的信息,job注册到JobDetail中,然后JobDetail注册进Scheduler中去。

    当要执行job是job才会被实例化,每次执行job都会实例化一个新的job对象,不必担心job的线程安全问题。 

  Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
  scheduler.start();   JobDetail jobDetail = new JobDetail("PrintJobDataMapJob",Scheduler.DEFAULT_GROUP,TestJob.class);//把job类--TestJob注册进JobDetail中   Trigger trigger = TriggerUtils.makeImmediateTrigger(0, 1000);   trigger.setName("PrintJobDataMapJobTrigger"); scheduler.scheduleJob(jobDetail,trigger);//把JobDetail注册进Scheduler中

  使用JobDetail对象的getJObDataMap()方法获取存储job要保存的自定义属性的map集合,JobDataMap实现了Map集合,具有Map的特性,JobDataMap中的数据可以在job类中进行传递和访问。

  实现job接口的job类是无状态的,要想job有状态,需要实现stateFulJob接口。


  StateFulJob是job的一个扩展接口,与job一样需要实现execute方法。

  job和stateFulJob的区别:

    多个有状态StateFulJob的JobDetail无法并发执行。或者两个trigger触发stateFulJob的条件是同时发生的,有一个trigger会被一直阻塞,直到另外的trigger处理完毕才会执行。

job的易失性、持久性和可恢复性  

  易失性:易失性的job在程序关闭后不会被持久化。可以通过JobDetail的setVolaility(true)来把job设置为易失性的。默认是false的。

  持久性:持久的job保存在jobstore中,当一个job是连续性的,没有trigger触发job,job还会保存在jobstore中,如果不是连续性的,就回被移除jobstore。通过JobDetail的setDurability(boolean)方法设置是否是连续性的,为true时不会被移除。

  可恢复性:在job还在执行是,Scheduler被意外关闭,在Scheduler重启之后job还可以恢复,在次重头开始执行。通过setRequestRecovery(boolean shuldRecovery)设置是否是可恢复的。默认是false不可恢复。

quartz_job的更多相关文章

  1. Quartz定时任务学习(二)web应用/Quartz定时任务学习(三)属性文件和jar

    web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...

  2. Quartz定时任务学习(二)web应用

    web中使用Quartz 1.首先在web.xml文件中加入 如下内容(根据自己情况设定) 在web.xml中添加QuartzInitializerServlet,Quartz为能够在web应用中使用 ...

  3. quartz定时任务时间配置

    quartz定时任务时间设置描述(2011-03-03 16:23:50)转载▼标签: quartz时间it 分类: 凌乱小记  这些星号由左到右按顺序代表 :     *    *     *    ...

  4. quartz实现定时功能实例详解(servlet定时器配置方法)

    Quartz是一个完全由java编写的开源作业调度框架,下面提供一个小例子供大家参考,还有在servlet配置的方法 Quartz是一个完全由java编写的开源作业调度框架,具体的介绍可到http:/ ...

  5. Quartz定时任务详解一

    以下是我在应用的的一个基本配置: #---------调度器属性---------------- org.quartz.scheduler.instanceName = TestScheduler o ...

  6. .Net Core 2.0 的 ConsoleApp 搭建 Quartz(xml配置)windows服务

    零.创建一个.Net Core 2.0 的ConsoleApp 应用,建完就是这个样子了. 添加Log4Net 的引用,(不想看可以不看,个人习惯)Install-Package log4net添加C ...

  7. quartz简单应用

    pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3 ...

  8. quartz 配置运行

    这篇文章是对quartz 2.2.1进行配置 分为spring 整合版本和QuartzInitializerServlet整合版本 首先是QuartzInitializerServlet整合版本 主要 ...

  9. Quartz定时任务学习(三)属性文件和jar

    以下是我在应用的的一个基本配置: #---------调度器属性----------------org.quartz.scheduler.instanceName = TestSchedulerorg ...

随机推荐

  1. C++快速入门系列教程

    C++ 60分钟入门教程:http://see.xidian.edu.cn/cpp/biancheng/view/2755.html

  2. Flasky学习笔记(一)

    1. app.run(debug=True,host='10.0.2.15',port=8000)自定义host及port;

  3. 对"QQGame-大家来找茬"的辅助工具的改进

    [前言]最近在博客园首页上看到有“大家来找茬”这个游戏(此游戏为找出两个相近图片的不同点)外挂的相关帖子,所以这里我也翻看了我之前(2009年5月)的写的一个简单的辅助程序(采用 VC6 开发的).我 ...

  4. tomcat8和7关于自定义tag的处理区别

    今天将一直运行在tomcat-7.0.29(jdk1.6)上的应用迁移到tomcat-8.0.26(jdk1.7)上面,老显示如下错误: org.apache.jasper.JasperExcepti ...

  5. Extjs 百度地图扩展

    var bmapps; Bsprint.EditMapInfoWindow = Ext.extend(Ext.Window, { form: null, constructor: function ( ...

  6. html, xhtml和xml

    html, xhtml和xml 1.定义及特点: 1) html:Hyper Text Markup Language 超文本标记语言 是最早写网页的语言,但编码不规范,主要用于控制数据的显示和外观. ...

  7. 扩展easyui.datagrid,添加数据loading遮罩效果代码 --来自网摘收集

    //jquery.datagrid 扩展 (function (){ $.extend($.fn.datagrid.methods, { //显示遮罩 loading: function(jq){ r ...

  8. linux expect命令使用入门

    expect的核心是spawn expect send set   spawn:spawn是进入expect环境后才可以执行的expect内部命令,相当于shell中的内置命令,通过它,调用需要执行的 ...

  9. Java堆内存的十个要点

    Java中的堆空间是什么? 当Java程序开始运行时,JVM会从操作系统获取一些内存.JVM使用这些内存,这些内存的一部分就是堆内存.堆内存通常在存储地址的底层,向上排列.当一个对象通过new关键字或 ...

  10. .NET Framework 的 Quirk Version

    今天在CSDN上看到一个帖子 :".net 4.0和4.5不同版本的Uri.ToString行为不同?", 调试.NET Framework 源代码发现,是这句代码起的作用 int ...