Quartz定时任务学习(五)触发器
来源:互联网 发布:自学java 知乎 编辑:程序博客网 时间:2024/05/17 05:04
顾名思义,Trigger(触发器)的责任就是触发一个 Job 去执行。当用 Scheduler 注册一个 Job 的时候要创建一个 Trigger 与这个 Job 相关联。Quartz 提供了四种类型的 Trigger,但其中两种是最为常用的,分别是下面的两种: SimpleTrigger 和 CronTrigger.
CronTrigger 非常复杂且强大。它是基于通用的公历,当需要用一种较复杂的时间表去执行一个 Job 时用到。 为更简单的使用 Trigger,Quartz 包含了一个工具类,叫做 org.quartz.TriggerUtils. TriggerUtils 提供了许多便捷的方法简化了构造和配置 trigger.
SimpleTrigger 是两个之中简单的那个,它主要用来激发单事件的 Job,Trigger 在指定时间激发,并重复 n 次--两次激发时间之间的延时为 m,然后结束作业。
首先说下SimpleTrigger实例化方式:
SimpleTrigger 提供了多种构造方法供实例化,可以通过设置属性值来设定触发器状态,具体可以参考API中SimpleTrigger 比如设置启动时间为当前时间:simpleTrigger.setStartTime(new Date()); 设置执行间隔时间(毫秒)为10秒:simpleTrigger.setRepeatInterval(10000); 设置重复次数10次:simpleTrigger.setRepeatCount(10); 设置优先级simpleTrigger.setPriority(10);等等。
1、构造方法SimpleTrigger simpleTrigger = new SimpleTrigger("simpleTrigger", "triggerGroup-s1");
2、通过TriggerUtils的静态方法实例化,具体可以参考APITriggerUtils的静态方法
例如makeImmediateTrigger(String trigName, int repeatCount, long repeatInterval)
其中repeatCount如果为-1表示一直执行
repeatInterval表示执行次数
其中还包含很多类似方法,针对年月日周等不同情况来实例化触发器
3、通过web加载xml文件来配置,前面第二节中讲到web应用的简单示例。在定义XML的时候有如下触发器标签和内容
<trigger>
<cron>
<name>job1</name>
<group>group1</group>
<job-name>listener1</job-name>
<job-group>group1</job-group>
<cron-expression>0/10 * * * * ?</cron-expression>
</cron>
</trigger>
这种方式是下面要讲到的CronTrigger.触发器方式,而SimpleTrigger也有可以通过XML来配置,例如:
<trigger>
<simple>
<name>job1</name>
<group>group1</group>
<job-name>listener1</job-name>
<job-group>group1</job-group>
<start-time>2010-04-22 8:31:00 AM</start-time>
<repeat-count>-1</repeat-count>
<repeat-interval>10000</repeat-interval>
</simple>
</trigger>
注意红色标记部分。通过设置参数来实现触发时间和具体触发情况
CronTrigger实例化方式:
CronTrigger ct1 = new CronTrigger("cronTrigger1","defaultGroup"); 以上示例是设置每天早晨7.45分执行一次,具体的CronExpression可以参考API或者学习linux的crontab定时任务命令,定义具体差不多,还可以学习下linux的定时任务。
1、通过构造方法来实例化:
CronExpression cexp1 = new CronExpression("0 45 7 * * ?");
ct1.setCronExpression(cexp1);
2.通过web加载XML。例如
<trigger>
<cron>
<name>job1</name>
<group>group1</group>
<job-name>listener1</job-name>
<job-group>group1</job-group>
<cron-expression>0/10 * * * * ?</cron-expression>
</cron>
</trigger>
表示每10秒执行一次
以上几种都在前面有例子了,下面给出CronTrigger实例化方式的构造方法例子:
public void task() throws SchedulerException {
CronTrigger ct1 = new CronTrigger("cronTrigger1","defaultGroup");
try {
CronExpression cexp1 = new CronExpression("0/10 * * * * ?");
ct1.setCronExpression(cexp1);
} catch (Exception e) {
e.printStackTrace();
}
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler= schedulerFactory.getScheduler();
JobDetail jobDetail = new JobDetail("jobDetail1", "jobGroup", MyJob1.class);
scheduler.scheduleJob(jobDetail, ct1);
scheduler.start();
}
- Quartz定时任务学习(五)触发器
- Quartz定时任务学习(七)Cron 触发器
- quartz定时任务触发器
- 学习定时任务(Quartz)
- Quartz定时任务学习
- Quartz定时任务学习
- Quartz定时任务学习(六)作业
- quartz(定时任务)
- Quartz定时任务学习(九)Quartz监听器
- [译]Java定时任务调度-Quartz文档(五)SimpleTrigger
- quartz定时任务调度学习
- Quartz定时任务学习(一)简单任务
- Quartz定时任务学习(一)简单任务
- Quartz定时任务学习(一)简单任务
- Quartz定时任务学习(一)简单任务
- Quartz定时任务SimpleTrigger:任务、触发器和调度器
- Quartz定时任务(Spring)
- Quartz定时任务学习(二)web应用
- 三种必需的嵌入式开发工具
- SqlServer 事物日志空间已满处理办法。
- Linux之管理用户
- 人人都应该掌握的一些电脑操作技巧
- Liferay Portal 的权限控制代码(部分)
- Quartz定时任务学习(五)触发器
- engine中调整Element的上下显示顺序(遮盖)
- 构建最最基本的laf
- Linux之快捷键使用
- linux fork and exec function
- 内存泄漏位置的确定方法
- Test
- 数据还原
- 如何强制关闭所有进程方法