Quartz Trigger
来源:互联网 发布:阿里云服务器上传代码 编辑:程序博客网 时间:2024/05/22 15:43
Quartz中一个Job往往是一个任务业务逻辑的实现,Job并不知道何时被执行。执行一个Quartz Job的是一个Trigger实例。Trigger(触发器)的责任就是触发一个 Job 去执行。当用 Scheduler 注册一个 Job 的时候要创建一个 Trigger 与这个 Job 相关联。Quartz 触发器继承了Quartz框架中的org.quartz.Trigger类:
public abstract class Trigger implements java.io.Serializable, Cloneable, Comparable {}
public class SimpleTrigger extends Trigger {}
public class NthIncludedDayTrigger extends Trigger {}
public class CronTrigger extends Trigger {}
org.quartz.SimpleTrigger:
通过构造方法:
SimpleTrigger simpleTrigger = new SimpleTrigger("trigger", "tgroup");simpleTrigger.setRepeatInterval(1000);simpleTrigger.setRepeatCount(10);scheduler.scheduleJob(jobDetail, simpleTrigger);
通过TriggerUtils的静态方法实例化:
Trigger t=TriggerUtils.makeSecondlyTrigger(10);t.setName("trigger");t.setStartTime(new Date());scheduler.scheduleJob(jobDetail, t);
org.quartz.CronTrigger:
SimpleTrigger 对于需要在指定的毫秒处及时执行的作业还是不错的,但要处理更为复杂都执行计划时,CronTrigger 就显得更加灵活了,
通过构造方法
CronTrigger trigger=new CronTrigger("crontrigger",Scheduler.DEFAULT_GROUP,"* * * * * ?");//trigger.getJobDataMap().put("str", "Trigger-world");scheduler.scheduleJob(jobDetail, trigger);
通过xml:
<?xml version="1.0" encoding="UTF-8"?><job-scheduling-dataxmlns="http://www.quartz-scheduler.org/xml/JobSchedulingData"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.quartz-scheduler.org/xml/JobSchedulingData http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd"version="1.8"><schedule><job><name>hello</name><group>group</group><job-class>org.han.jobs.XLSJob</job-class></job><trigger><cron><name>trigger</name><group>group</group><job-name>hello</job-name><job-group>group</job-group><cron-expression>0 0 0 ? * *</cron-expression></cron></trigger></schedule></job-scheduling-data>
#===============================================================
#Configure Main Scheduler Properties
#===============================================================
org.quartz.scheduler.instanceName = QuartzScheduler
org.quartz.scheduler.instanceId = AUTO
#===============================================================
#Configure ThreadPool
#===============================================================
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
#===============================================================
#Configure JobStore
#===============================================================
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
#===============================================================
#Configure Plugins
#===============================================================
org.quartz.plugin.jobInitializer.class =org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin
#fileNames对应上面的xml文件名
org.quartz.plugin.jobInitializer.fileNames = quartz_jobs.xml
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown =true
org.quartz.NthIncludedDayTrigger:
org.quartz.NthIncludedDayTrigger是Quartz开发团队在Quartz框架中新添加的一个触发器。它设计的目标是提供不同时间间隔的第n天执行时刻表。
NthIncludedDayTrigger ndt = new NthIncludedDayTrigger();ndt.setName(jd.getName()+"-Trigger");ndt.setIntervalType(NthIncludedDayTrigger.INTERVAL_TYPE_WEEKLY);ndt.setN(Calendar.MONDAY);ndt.setFireAtTime("12:00:00");Calendar c = Calendar.getInstance();ndt.setStartTime(c.getTime());
- Quartz Trigger
- Quartz.NET--Trigger 触发器
- Quartz (三) Trigger
- Quartz.NET--Trigger 触发器
- Quartz教程四:Trigger
- Quartz教程四:Trigger
- Quartz之Trigger
- Quartz教程四:Trigger
- Quartz教程四:Trigger
- Quartz与Trigger初探
- quartz教程-触发器Trigger
- Quartz-Trigger详解
- quartz jobdetail trigger定时任务
- Quartz源码分析之Trigger
- Quartz-JobDetail和Trigger-Job
- Quartz-JobDetail和Trigger-Job
- quartz通过数据库配置trigger
- Quartz教程四--Trigger介绍
- 新手上路第一天————菜鸟的心得之单链表
- javascript:history.go()和History.back()的区别收藏
- Linux下分割与合并文件的方法
- java.lang.NullPointerException at org.apache.struts.action.ActionServlet.parseModuleConfigFile(Actio
- 1、ubuntu基本操作 - ssh的使用
- Quartz Trigger
- 关于git server 搭建
- 共享队列和双队列
- 解决Eclipse修改目录或删除目录后,编译提示invalid project path
- ubuntu12.04LTS 下安装MyEclispe
- iphone开发内存管理之──深拷贝和浅拷贝
- 进程名与进程号的对应关系获取
- iOS系统安全机制概览
- javaassist修改constructor构造函数,增加方法,修改方法