Quartz 触发器分为两种SimpleTrigger 和 CronTrigger, SimplerTrigger 适用于以固定时间间隔执行重复N次或延时执行一次的定时任务, CronTrigger 适用于按照日历规则来执行定时任务, 如每月最后一天触发一次, 每周一触发一次等.

1. 核心API

quartz 提供了一组API, 用于快捷地创建SimpleTrigger或CronTrigger:

  • TriggerBuilder: 用于构建触发器, 可以设置公有属性:触发器名称, 描述信息, 开始调度时间, 结束时间等
  • DateBuilder: 时间工具类, 可便捷设置触发器开始调度时间和结束调度时间.
  • SimpleScheduleBuilder: 用于构建simple触发器, 需要设置重复间隔, 重复次数
  • CronScheduleBuilder: 用于构建cron触发器, 需要设置cron 表达式

2. 触发器创建实例

2.1 创建SimpleTrigger

SimpleTrigger 创建时, 需指定定时任务间隔和重复次数.

Trigger trigger1 = TriggerBuilder.newTrigger().withIdentity("trigger1", "simpTrigger").withDescription("每隔3秒触发一次, 共触发10次, 立刻执行").withSchedule(SimpleScheduleBuilder.simpleSchedule().withIntervalInSeconds(3000).withRepeatCount(10)).startNow().build();Trigger trigger2 = TriggerBuilder.newTrigger().withIdentity("trigger2", "simpTrigger").withDescription("5分钟后开始, 每隔一小时执行一次, 明天零点结束").withSchedule(SimpleScheduleBuilder.simpleSchedule().withRepeatCount(1000 * 60 * 24).repeatForever()).startAt(DateBuilder.futureDate(5, DateBuilder.IntervalUnit.MINUTE)).endAt(DateBuilder.tomorrowAt(0, 0 , 0)).build();

2.2 创建CronTrigger

CronTrigger 创建比较简单, 只需要设置cron表达式即可.

Trigger trigger1 = TriggerBuilder.newTrigger().withIdentity("trigger1", "cronTrigger").withDescription("每隔3秒触发一次, 立刻执行").withSchedule(CronScheduleBuilder.cronSchedule("*/3 * * * * ?")).startNow().build();

04.Quartz 触发器相关推荐

  1. 使用Spring3+Quartz实现定时任务

    在本文中,我们使用Spring3+Quartz实现定时任务.spring中定义了一些接口来支持Quartz,可以使你的业务逻辑类和Quartz解耦. 这个例子中使用了如下maven的依赖项: < ...

  2. Quartz 2.x 任务调度使用(CronTrigger)

    为什么80%的码农都做不了架构师?>>> Quartz 框架是一个全功能.开源的任务调度服务,可以集成几乎任何的 Java 应用程序-从小的单片机系统到大型的电子商务系统.Quart ...

  3. Structured Streaming编程 Programming Guide

    Structured Streaming编程 Programming Guide • Overview • Quick Example • Programming Model o Basic Conc ...

  4. Apache Spark 3.0 结构化Streaming流编程指南

    目录 总览 快速范例 Scala语言 Java语言 Python语言 R语言 程式设计模型 基本概念 处理事件时间和延迟数据 容错语义 使用数据集和数据帧的API 创建流数据框架和流数据集 流数据帧/ ...

  5. Apache Spark【从无到有从有到无】【编程指南】【AS5】结构化流编程指南

    目录 1.概观 2.快速示例 3.编程模型 3.1.基本概念 3.2.处理事件时间和延迟数据 3.3.容错语义 4.使用数据集和数据框架的API 4.1.创建streaming DataFrames ...

  6. Apache Spark基础知识

    我的spark学习笔记,基于Spark 2.4.0 目录 一.简介 二.RDD编程 1 RDD介绍 2 RDD操作 2.0 读操作 2.1 常用Tramsformation算子 2.2 常用Actio ...

  7. (转)Java任务调度框架Quartz入门教程指南(四)Quartz任务调度框架之触发器精讲SimpleTrigger和CronTrigger、最详细的Cron表达式范例...

    http://blog.csdn.net/zixiao217/article/details/53075009 Quartz的主要接口类是Schedule.Job.Trigger,而触发器Trigge ...

  8. [19/04/12-星期五] 多线程_任务定时调度(Timer、Timetask和QUARTZ)

    一.Timer和Timetask 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每 ...

  9. spring Quartz 源码分析--触发器类CronTriggerBean源码剖析

    前面我们讲到了Quartz框架在项目中的实现,在Quartz中的重要API有两个重要的触发器类:CronTrigger 和SimpleTrigger 在Quartz框架中这两个触发器都继承了一个抽象基 ...

最新文章

  1. 存储的学习:freenas使用记录
  2. 基于WebSocket协议的iOS端即时聊天
  3. 产品工作中保持饥饿感,保持拒绝90%以上的伪需求你就不会错过下一个微信
  4. R软件的下载及安装(截图步骤详细)
  5. 【图像处理】——傅里叶变换、DFT以及在图像上的应用
  6. python统计字符在文件中出现的次数_一文搞定统计字符串中某字符出现的频次
  7. 无监督学习与有监督学习的本质区别是什么_干货关于无监督学习你了解多少?...
  8. Java阶段测试题一
  9. 手把手带你深入解析静态分派 动态分派原理 | 原力计划
  10. ASP.NET中 CompareValidator(比较验证)的使用
  11. SketchUp 更新插件,不用重启让更新生效
  12. 【HUSTOJ】1048: 字符图形4-星号正三角
  13. 在mandriva2009上面架构dhcp服务器
  14. centos7.6安装mysql数据库_CentOS7.6安装MYSQL8.0
  15. @Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig详解
  16. PTA 7-114 用if-else语句编程百分制成绩转换为五分制成绩
  17. 总结:python代码实现矩阵最基本操作
  18. LEETCODE--mysql查询第二高薪水
  19. Java胖老鼠的交易
  20. 四十六.风控评分卡模型关键点理解

热门文章

  1. 【读书笔记->数据分析】03 BDA数据可视化
  2. 梯有N阶,上楼可以一步上一阶,也可以一次上二阶(Java实现)
  3. MyBatis读数据库出现很多字段都是null的问题
  4. 大数据分析与挖掘期末复习
  5. 攻防世界web新手题答案_南开本部20春学期(2003)《计算机应用基础》在线作业-1答案...
  6. challenge是什么意思_英语单词学习-challenge是什么意思_翻译_用法_例句
  7. iOS 在itunes connect创建App内购项目时遇到的坑
  8. 如何阅读一份上市公司财报 - 财报阅读入门
  9. 杀掉window/system32/driver下.sys的流氓文件
  10. kali使用笔记本自带无线网卡_不会选无线网卡看过来!再也不花冤枉钱了.........