触发器通用属性:

    jobKey:表示job实例的标识,触发器被触发时,指定的job实例会被执行。

    startTime:表示触发器的时间表 首次被触发的时间,他的值类型为java.uti.Date。

    endTime:指定的触发器不在被执行的时间,他的值类型为java.uti.Date。

实现:

package quartz;

import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import org.quartz.impl.StdSchedulerFactory; public class SchedulerClass { public static void main(String[] args) throws SchedulerException {
Date startDate = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("当前时间:"+sf.format(startDate));
// 创建一个JobDetail实例
// 将该实例与JobClass绑定,JobDetail是由Builder模式来创建的,JobDetail是来绑定job的。
// withIdentity 创建唯一的标识
JobDetail jobDetail = JobBuilder.newJob(JobClass.class).withIdentity("jobName", "group").build(); /*获取当前三秒后的时间*/
startDate.setTime(startDate.getTime()+3000);
/*获取当前六秒后的时间*/
Date endDate = new Date();
endDate.setTime(endDate.getTime()+6000);
// 创建一个Tigger实例,定义 job立即执行,并每隔一段时间重复执行,每隔5秒中执行一次
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger").startAt(startDate).endAt(endDate)
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(5).repeatForever()).build(); // 创建一个Scheduler实例, Scheduler是由工厂模式来创建的 so
SchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
scheduler.start(); // 调度器调用任务和触发器,scheduler将job,trigger绑定在一起。
scheduler.scheduleJob(jobDetail, trigger); }
}
package quartz;

import java.text.SimpleDateFormat;
import java.util.Date; import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.JobKey;
import org.quartz.Trigger; public class JobClass implements Job { public void execute(JobExecutionContext arg0) throws JobExecutionException { Date date=new Date();
SimpleDateFormat sf=new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
System.out.println("执行时间:"+sf.format(date));
// 编写业务逻辑
System.out.println("hello Quartz");
JobKey jobKey=arg0.getJobDetail().getKey();
Trigger triiger=arg0.getTrigger();
System.out.println("开始时间"+sf.format(triiger.getStartTime()));
System.out.println("结束时间"+sf.format(triiger.getEndTime()));
System.out.println("实例名称:"+jobKey.getName()); } }

执行结果为:

  SimpleTrigger

作用:在指定的时间段内执行一次作业任务  或是 在指定的时间间隔内执行多次作业任务 (定时定频率)

       // 定时 当前时间3秒后执行
startDate.setTime(startDate.getTime() + 3000);
// Trigger trigger =TriggerBuilder.newTrigger().withIdentity("trigger").startAt(startDate).build();
// 定频率 每隔3秒中执行一次,执行2次
Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger").startNow()
.withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3).withRepeatCount(2)).build();

注意:

重复次数,可以是0、正整数,以及常量SimpleTrigger.REPEAT_INDEFINITELY。重复的间隔,必须是0,或者long型的正数,表示毫秒。注意,如果重复间隔为0,trigger将会以重复次数并发执行(或者以scheduler可以处理的近似并发数)。

endTime属性的值会覆盖设置重复次数的属性值;比如,你可以创建一个trigger,在终止时间之前每隔10秒执行一次,你不需要去计算在开始时间和终止时间之间的重复次数,只需要设置终止时间并将重复次数设置为REPEAT_INDEFINITELY(当然,你也可以将重复次数设置为一个很大的值,并保证该值比trigger在终止时间之前实际触发的次数要大即可)。

CronTrigger:基于日历的作业调度器。

Cron表达式:

  用于配置CronTrigger实例。由7个子表达式组成的字符串,描述时间表的详细信息,格式:秒 分 时 日 月 周 年

Trigger trigger = TriggerBuilder.newTrigger().withIdentity("trigger")
.withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ? *")).build();

通配符说明

实在是不知道怎么写  网上搜搜 cron在线生成表达式。

Tirgger SimpleTrigger CronTrigger(四)的更多相关文章

  1. 浅谈Trigger(SimpleTrigger&CronTrigger)

     1.Trigger是什么 Quartz中的触发器用来告诉调度程序作业什么时候触发,即Trigger对象是用来触发执行job的.  2.Quartz中的Trigger  3.触发器通用属性: JobK ...

  2. 浅谈Quartz(SimpleTrigger&CronTrigger)

    private void quartzOrderReturn(List<String> returnIds) { try { Scheduler scheduler = StdSchedu ...

  3. Lesson 6: CronTrigger

    CronTrigger is often more useful than SimpleTrigger, if you need a job-firing schedule that recurs b ...

  4. 任务调度 Quartz 学习(一) SimpleTrigger

    概述: 在实际开发过程中,会遇到很多任务调度的需求. 比如说:某网站要在每周一上午9点更新网站数据,并发邮件通知用户: 再比如某论坛需求:每隔半个小时生成精华文章的RSS文件,每天凌晨统计论坛用户的积 ...

  5. Quartz的基本使用之入门(2.3.0版本)

    一.Quartz可以用来做什么 Quartz是一个强大任务调度框架,我工作时候会在这些情况下使用到quartz框架,当然还有很多的应用场景,在这里只列举2个实际用到的 餐厅系统会在每周四晚上的22点自 ...

  6. Quartz入门例子简介 从入门到菜鸟(一)

    转: Quartz入门例子简介 从入门到菜鸟(一) 2016年11月19日 22:58:24 爱种鱼的猫 阅读数:4039   刚接触quartz这个词并不是在学习过程中...而是WOW里面的界面插件 ...

  7. java定时任务实现的几种方式(Timer、Spring Task、Quartz)

    Timer JDK自带的Timer类,允许调度一个TimerTask任务. Demo: /** * Timer测试类 */ public class TimerDemo { public static ...

  8. Java任务调度框架Quartz教程

    一.什么是quartz作业调度? Quartz框架是一个全功能.开源的任务调度服务,可以集成几乎任何的java应用程序—从小的单片机系统到大型的电子商务系统.Quartz可以执行上千上万的任务调度. ...

  9. quartz (从原理到应用)详解篇(转)

    一.Quartz 基本介绍 1.1 Quartz 概述 1.2 Quartz特点 1.3 Quartz 集群配置 二.Quartz 原理及流程 2.1 quartz基本原理 2.2 quartz启动流 ...

随机推荐

  1. 2.Redis五种数据结构

    2.Redis五种数据结构2.1 预备2.1.1 全局命令2.1.2 数据结构和内部编码2.1.3 单线程架构2.2 字符串2.2.1 命令2.2.2 内部编码2.2.3 典型使用场景2.3 哈希2. ...

  2. 3P - Snooker

    background: Philip likes to play the QQ game of Snooker when he wants a relax, though he was just a ...

  3. SFTP搭建@windows using freeSHHd&FileZilla

    转自:http://blog.163.com/ls_19851213/blog/static/531321762009815657395/ Windows  xp 下 搭建 基于  ssh 的sftp ...

  4. python 练习1

    题目: 1.输入用户名密码2.认证成功后显示欢迎信息3.输错三次后锁定 #!/usr/bin/env python import sys,pickle account = {'wyh':123,'cl ...

  5. python任意进制转换

    python任意进制转换 import string def module_n_converter(q, s, base=None): """ 将自然数按照给定的字符串转 ...

  6. MSSQL语句学习(查询表的总记录数)

    如何高效查询表的总记录数(通用方法) SELECT COUNT(1) ROWS FROM product 野路子1:利用系统自带的存储过程SP_SPACEUSED,详细的使用方式推荐谷哥或度娘, EX ...

  7. s33 cobbler自动化安装系统

    1. Cobbler介绍 参考链接:http://blog.oldboyedu.com/autoinstall-cobbler/ Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PX ...

  8. python中global和nonlocal用法的详细说明

    一.global 1.global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字.   gcount = 0 def global_test(): ...

  9. pyhon_day1 格式化输出

    格式化输出 我们在写Python的在很多时候输出的内容需要规定格式的,这样就引入到了格式化输出 定义: 盗用下大咖的例子: ------------ info of alex ----------- ...

  10. [W3bSafe]Metasploit溢出渗透内网主机辅助脚本

    文章来源i春秋 脚本用Shell编写  有的内网特别脆弱  本脚本主要就是 测试的话方便一点   输入内网网关就能调用Metasploit全部模块测试整个内网 运行截图<ignore_js_op ...