quartz2.3.0(十四)trigger触发器优先级排序
job任务类:
- package org.quartz.examples.example14;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.quartz.Job;
- import org.quartz.JobExecutionContext;
- import org.quartz.JobExecutionException;
- /**
- * 一个简单的job任务
- */
- public class TriggerEchoJob implements Job {
- private static final Logger LOG = LoggerFactory.getLogger(TriggerEchoJob.class);
- // 必须要有public修饰的无参构造函数
- public TriggerEchoJob() {
- }
- // 任务执行方法
- public void execute(JobExecutionContext context) throws JobExecutionException {
- LOG.info("任务执行。TRIGGER: " + context.getTrigger().getKey());
- }
- }
调度器类:
- package org.quartz.examples.example14;
- import static org.quartz.DateBuilder.futureDate;
- import static org.quartz.JobBuilder.newJob;
- import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
- import static org.quartz.TriggerBuilder.newTrigger;
- import org.quartz.DateBuilder.IntervalUnit;
- import org.quartz.JobDetail;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerFactory;
- import org.quartz.Trigger;
- import org.quartz.impl.StdSchedulerFactory;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import java.util.Date;
- /**
- * 这个例子将演示触发器是如何按优先级排序的。
- */
- public class PriorityExample {
- Logger LOG = LoggerFactory.getLogger(PriorityExample.class);
- public void run() throws Exception {
- // 初始化调度器
- // SchedulerFactory sf = new StdSchedulerFactory("org/quartz/examples/example14/quartz_priority.properties");
- SchedulerFactory sf = new StdSchedulerFactory();
- Scheduler sched = sf.getScheduler();
- JobDetail job = newJob(TriggerEchoJob.class).withIdentity("TriggerEchoJob").build();
- // 这三个触发器将同时触发它们的第一次,按优先级排序,优先级数字越大,优先级越高。
- // 然后重复执行一次,因为间隔时间秒数不一样,所以触发器又会显示好像不按优先级顺序触发了,其实并没有忽略优先级。
- // 由于设置了触发器优先级,所以我们应该可以看到以下触发器执行顺序:
- // 1. Priority10Trigger15SecondRepeat
- // 2. Priority5Trigger10SecondRepeat
- // 3. Priority1Trigger5SecondRepeat
- // 4. Priority1Trigger5SecondRepeat
- // 5. Priority5Trigger10SecondRepeat
- // 6. Priority10Trigger15SecondRepeat
- // Calculate the start time of all triggers as 5 seconds from now
- Date startTime = futureDate(5, IntervalUnit.SECOND);
- // 第一个触发器优先级1(withPriority),优先级数字越小触发器优先级越低
- Trigger trigger1 = newTrigger().withIdentity("Priority1Trigger5SecondRepeat").startAt(startTime)
- .withSchedule(simpleSchedule().withRepeatCount(1).withIntervalInSeconds(5)).withPriority(1).forJob(job)
- .build();
- // 第二个触发器优先级未设置,默认优先执行设置了优先级的触发器,所以这个触发器优先级最低
- Trigger trigger2 = newTrigger().withIdentity("Priority5Trigger10SecondRepeat").startAt(startTime)
- .withSchedule(simpleSchedule().withRepeatCount(1).withIntervalInSeconds(10)).forJob(job).build();
- // 触发器优先级10(withPriority),优先级数字越大触发器优先级越高,在触发器并发执行情况下,优先级越高的触发器执行越靠前
- Trigger trigger3 = newTrigger().withIdentity("Priority10Trigger15SecondRepeat").startAt(startTime)
- .withSchedule(simpleSchedule().withRepeatCount(1).withIntervalInSeconds(15)).withPriority(10)
- .forJob(job).build();
- sched.scheduleJob(job, trigger1);
- sched.scheduleJob(trigger2);
- sched.scheduleJob(trigger3);
- //启动调度器,只有启动调度器,触发器和任务才会真正执行
- sched.start();
- LOG.info("------- Started Scheduler -----------------");
- Thread.sleep(30L * 1000L);
- //关闭调度器
- sched.shutdown(true);
- LOG.info("------- Shutdown Complete -----------------");
- }
- public static void main(String[] args) throws Exception {
- PriorityExample example = new PriorityExample();
- example.run();
- }
- }
quartz2.3.0(十四)trigger触发器优先级排序的更多相关文章
- quartz2.3.0(二)触发器Trigger花式Scheduler调度job
任务类 package org.quartz.examples.example2; import java.util.Date; import org.slf4j.Logger; import org ...
- quartz2.3.0(四)JobDataMap—带状态集合的定时器内置集合
任务类 package org.quartz.examples.example4; import java.util.Date; import org.quartz.DisallowConcurren ...
- quartz2.3.0系列目录——带您由浅入深全面掌握quartz2.3.0
quartz2.3.0系列目录 官网下载地址:http://www.quartz-scheduler.org/downloads/ 本系列demo全部来源于官网,仅仅是简化和汉化了注释!一部分代码de ...
- quartz2.3.0(十三)数据库持久化定时器job任务和trigger触发器,在多个调度器实例情况下,由其它调度器实例恢复执行调度器宕机的job任务
一.初始化数据库11张quartz表:qrtz_* 先从官网下载好quartz2.3.0包:http://www.quartz-scheduler.org/downloads/ 解压后进入目录:q ...
- quartz2.3.0(十五)执行、暂停、继续执行、清除,花式操作数据库中持久化的job任务
#################################################################################################### ...
- quartz2.3.0(十)xml配置方式定义quartz定时任务
1.新增pom依赖 除了按照<quartz2.3.0系列目录——带您由浅入深全面掌握quartz2.3.0>添加依赖之外,pom.xml里新增加依赖: <dependency> ...
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十四)之漏掉的客服消息
前言 不知不觉已经十四篇了,其实已经没有什么可写了.但是突然发现layim中带的客服功能没有用到.于是乎,抽点时间完成吧.其实之前的工作已经把客服功能完成了一大半,剩下的我们稍微调整即可.今天的演示我 ...
- 从壹开始前后端分离 [ Vue2.0+.NET Core2.1] 十四 ║ VUE 计划书 & 我的前后端开发简史
---新内容开始--- 番外 大家周一好呀,又是元气满满的一个周一呀!感谢大家在周一这个着急改Bug的黄金时期,抽出时间来看我的博文哈哈哈,时间真快,已经到第十四篇博文了,也很顺顺(跌跌)利利 (撞撞 ...
- Quartz Trigger Priority 触发器优先级
Quartz Trigger Priority 触发器优先级 当多个触发器在一个相同的时间内触发,并且调度引擎中的资源有限的情况下,那么具有较高优先级的触发器先触发. 需要将配置文件中的org.qua ...
随机推荐
- nginx配置ssl加密(单/双向认证、部分https)
nginx下配置ssl本来是很简单的,无论是去认证中心买SSL安全证书还是自签署证书,但最近公司OA的一个需求,得以有个机会实际折腾一番.一开始采用的是全站加密,所有访问http:80的请求强制转换( ...
- 安利一个github上面的一个神级库thefuck,Linux命令敲错了,没关系,自动纠正你的命令
没错就是这么神奇,名字相当噶性,thefuck.当你命令输入错误不要怕,直接来一句fuck,自动纠正你输入的命令. 在你输入错误的命令的时候,忍俊不禁的想来一句fuck,没错你不仅可以嘴上说,命令里面 ...
- 服务器收不到支付宝notify_url异步回调请求的问题排查
小背景 最近在调整支付宝支付的功能时发现,不能够正常接收支付宝付款成功之后的回调通知了,从代码到配置最后到服务器配置都排查了一遍,最终发现问题原因竟然是因为我们的回调地址notify_url是http ...
- CodeMirror在线代码编辑器使用
CodeMirror官网地址为:https://codemirror.net/ CodeMirror作为一款代码编辑器,其应用场景主要是在线网站写代码.如现在的leetcode.洛谷.code-vs等 ...
- idea的maven工程中修改pom会改变项目jdk版本
解决办法 方案一 //pom中配置maven插件时候 <plugins> <!--jdk编译插件--> <plugin> <groupId>org.ap ...
- 第07组 Beta冲刺(5/5)
队名:摇光 队长:杨明哲 组长博客:求戳 作业博客:求再戳 队长:杨明哲 过去两天完成了哪些任务 文字/口头描述:暂时没有. 展示GitHub当日代码/文档签入记录:(组内共用,已询问过助教小姐姐) ...
- 范仁义html+css课程---6、表格
范仁义html+css课程---6.表格 一.总结 一句话总结: 表格中最常用的元素就是table.tr.td.th,还有语义化的thead.tbody.tfoot标签 1.表格构成三个基本要素? t ...
- 隐藏一个button的方法(2种) 写出一个button的按钮(2种)
display:none;visibility:hidden: <input type = button><button>这是一个按钮 </button>
- CMU Database Systems - Distributed OLTP & OLAP
OLTP scale-up和scale-out scale-up会有上限,无法不断up,而且相对而言,up升级会比较麻烦,所以大数据,云计算需要scale-out scale-out,就是分布式数据库 ...
- CMU Database Systems - MVCC
MVCC是一种用空间来换取更高的并发度的技术 对同一个对象不去update,而且记录下每一次的不同版本的值 存在不会消失,新值并不能抹杀原先的存在 所以update操作并不是对世界的真实反映,这是一种 ...