有一些业务场景,我们需要手动去更新任务的触发时间,比如某个任务是每隔10分钟触发一次,现在需要改成每隔20分钟触发一次,这样既就需要手动的更新触发器

http://www.quartz-scheduler.org/documentation/quartz-2.1.x/cookbook/UpdateTrigger这里是官方的例子。

Replacing a trigger 替换触发器,通过triggerkey移除旧的触发器,同时添加一个新的进去。

// Define a new Trigger
Trigger trigger = newTrigger().withIdentity("newTrigger", "group1").startNow().build();// tell the scheduler to remove the old trigger with the given key, and put the new one in its place
sched.rescheduleJob(triggerKey("oldTrigger", "group1"), trigger);

但是有一个地方需要注意:sched.rescheduleJob(triggerKey("oldTrigger", "group1"), trigger); 这个方法返回一个Date.

如果返回 null 说明替换失败,原因就是旧触发器没有找到,所以新的触发器也不会设置进去,下面是官方原文。

null if a Trigger with the given name & group was not found and removed from the store (and the new trigger is therefore not stored), otherwise the first fire time of the newly scheduled trigger is returned.

替换失败的原因一般有两种:一种情况是传入的triggerKey没有与之匹配的,另外一种情况就是旧触发器的触发时间已经全部完成,在触发完成后调度引擎会自动清除无用的触发器,这种情况也会匹配不到。

Updating an existing trigger 更新触发器,通过triggerkey获得触发器,重新配置。

// retrieve the trigger
Trigger oldTrigger = sched.getTrigger(triggerKey("oldTrigger", "group1");// obtain a builder that would produce the trigger
TriggerBuilder tb = oldTrigger.getTriggerBuilder();// update the schedule associated with the builder, and build the new trigger
// (other builder methods could be called, to change the trigger in any desired way)
Trigger newTrigger = tb.withSchedule(simpleSchedule().withIntervalInSeconds(10).withRepeatCount(10).build();sched.rescheduleJob(oldTrigger.getKey(), newTrigger);

Quartz Scheduler 更新任务触发器相关推荐

  1. HOW-TO:具有MySQL的JEE应用程序中具有集群功能的Quartz Scheduler

    Quartz Scheduler是Java世界中最流行的调度库之一. 过去,我主要在Spring应用程序中使用Quartz. 最近,我一直在研究要在云中部署的JBoss 7.1.1上运行的JEE 6应 ...

  2. HOW-TO:带有MySQL的JEE应用程序中具有集群功能的Quartz Scheduler

    Quartz Scheduler是Java世界中最流行的调度库之一. 过去,我主要在Spring应用程序中使用Quartz. 最近,我一直在研究将在云中部署的JBoss 7.1.1上运行的JEE 6应 ...

  3. Quartz Scheduler插件–隐藏的宝藏

    尽管在官方文档中进行了简要描述,但我相信Quartz插件了解得还不够多,看看它们有多有用. 本质上,Quartz中的插件是方便的类,用于包装基础侦听器的注册. 您可以自由编写自己的插件,但我们将专注于 ...

  4. java quartz Scheduler 操作Trigger

    一个JobDetail可以有多个Trigger //增 sched.scheduleJob(trigger);//trigger必须使用forJob绑定JobDetail //查 System.out ...

  5. java quartz Scheduler 操作JobDetail

    scheduler可以看成是一个容器,对JobDetail进行增删改查 //增 sched.addJob(job,false);// false表示不替换,ture表示替换,既更新;另外一般使用 比较 ...

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

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

  7. java方法触发器,Quartz.Net任务和触发器实现方法详解

    Quartz API Quartz API的主要接口和类如下: IScheduler - 和调度器交互的主要API IJob - 调度器会执行实现这个接口的实例 IJobDetail - 用来定义任务 ...

  8. 如何使用Quartz Scheduler和日志记录创建Web应用程序

    我有时会在Quartz Scheduler论坛中为用户提供帮助. 有时,有人会问他/她如何在Web应用程序中设置Quartz. 实际上,这是一件相当简单的事情. 该库已经带有一个ServletCont ...

  9. 在MySQL数据库上使用Quartz Scheduler入门

    这是一些简单的步骤,可帮助您使用Groovy在MySQL数据库上完全入门Quartz Scheduler. 以下脚本可让您使用外部文件快速尝试不同的Quartz配置设置. 第一步是使用表设置数据库. ...

最新文章

  1. caffe loss
  2. UE选择合适的小区进行驻留以后
  3. 从草根到百万年薪程序员的十年风雨之路,使用指南
  4. [W班]第二次结对作业成绩评价
  5. 专业即时通讯工具的SEO人生发力
  6. (王道408考研数据结构)第六章图-第四节3:最短路径之BFS算法(思想、代码、演示、答题规范)
  7. c语言考试系统开发,基于WEB的(C语言)网络考试系统的开发与研究
  8. 修改MFC标题栏上的图标和修改MFC窗口标题(转)
  9. Gerber文件总结
  10. visio流程图怎么合并线_visio图形怎么合并? visio合并图形的方法
  11. 用什么c语言语句直接跳出if,C语言中怎样跳出if语句
  12. Autumn中文文档4:响应客户端结果
  13. 家庭版Windows10/Windows11不支持远程桌面
  14. 清空计算机网络缓存,如何清除DNS缓存 使用命令清理DNS缓存方法
  15. 网吧电影服务器解决方案完全指南(二)
  16. Linux 开机提示kernel panic...解决方法
  17. Matlab数字信号处理的仿真系统(具有界面)
  18. 星星之火-19:手机如何与基站进行时钟同步、时隙同步?
  19. python爬虫(网页解析)
  20. codeforces 314 (Div 1) 题解

热门文章

  1. 常见分布式事务解决方案
  2. micropython esp32驱动舵机_乐鑫ESP32-PCA9685舵机控制板与MicroPython-ESP32-电路城论坛 - 电子工程师学习交流园地...
  3. python之lxml(xpath)
  4. 巴基斯坦:软件服务外包行业的后来者 (zz)
  5. android system ui修改,【教程】一些有关于SystemUI修改的教程
  6. aspose替换书签并用金格插件打开
  7. Linux安装WPS Office并解决不能输入中文的问题
  8. java excel poi 图片大小_Apache POI Excel工作表:在保持比例的同时调整图片大小
  9. 【快速统计面积周长】封闭图形快速面积求和CAD插件【LSP】
  10. MPC入门与Matlab实现