Spring Quartz如何动态配置时间(3)

书接上回,上回说到,我们已经将页面的时间设置转为了Cron Expression,下面我记录了时间规则。

3) 记录时间规则

我将时间规则存入数据库中,目的是为了生成历史日志,也可以存入XML文件中。当然您也可以省略此步,直接将转换后的规则放入相应的Quartz trigger中。

4) 更新任务触发器的时间设置

到了关键的一步了,也是最简单的一步,一个方法就可以实现了。

首先,我们需要通过trigger的名称得到一个CronTriggerBean;

其次,通过trigger的setCronExpression(String cronExp)方法将新的表达式注入;

最后,RESCHEDULE THE JOB,OK!

1    /** */ /**
2   * 自定义定时器调度时间
3   * @param triggerName 触发器名称
4    * @throws Exception
5    */
6   public  void updateNotificationInterval(String triggerName, String triggerId)
7        throws SchedulerException, ParseException  {
8     // 得到trigger
9     CronTriggerBean trigger = (CronTriggerBean) scheduler.getTrigger(
10         triggerName, Scheduler.DEFAULT_GROUP);
11     // 得到cron expression    
12     String cronExpression = schedulerDAO.getCronExpression(triggerId);
13     // 设置trigger的时间规则
14     trigger.setCronExpression(cronExpression);
15     // 重置job
16     scheduler.rescheduleJob(triggerName, Scheduler.DEFAULT_GROUP, trigger);
17   }
18

时间: 2024-11-05 12:29:25

Spring Quartz如何动态配置时间(3)的相关文章

Spring Quartz如何动态配置时间(1)

1. 目的:动态设置时间,触发相应的任务 2. 系统架构为 struts + spring + hibernate 3. 实现步骤: 在页面上设置时间: 将时间转换为Unix Cron Expression: 将转换后的时间规则表达式记录到数据库中(也可以写入xml文件中,这里是项目需要记录入数据库中): 从数据库中得到相应的时间规则表达式: 更新您的任务触发器的时间设置: RESCHEDULE THE JOB.; - ) 4. 具体实现细节: 1) 在页面上设置时间 根据具体的业务需求,设置时

Spring Quartz如何动态配置时间(2)

上回说到,我们的设置页面已经做好了,接下来就是将时间转换为Unix Cron Expression. 2) 将时间转换为Unix Cron Expression 需要ActionForm将页面表单数据映射到Action中,然后在Action中转换为cron expression: 1 SchedulerForm schedulerForm = (SchedulerForm) form; 2 String jobName = schedulerForm.getJobName(); 3 String

(4) Spring中定时任务Quartz集群配置学习

原 来配置的Quartz是通过spring配置文件生效的,发现在非集群式的服务器上运行良好,但是将工程部署到水平集群服务器上去后改定时功能不能正常运 行,没有任何错误日志,于是从jar包.JDK版本.cronExpression到服务器类型,甚至查到了服务器操作系统的类型,都没能找到解决的办 法,后来才知道是集群惹的祸! 详细步骤如下: 1. 按照Quartz集群工作原理 图:表示了每个节点直接与数据库通信,若离开数据库将对其他节点一无所知 在数据库中建表.建表模版在Quartz包下docs/d

spring quartz 配置90秒执行一次job??怎么配置

问题描述 spring quartz 配置90秒执行一次job??怎么配置 如题,我想配置一个每隔90秒执行一次的job,这个配置表达式该怎么写啊 ,抓狂啊!!!! 解决方案 Spring中Quartz任务调度的配置Spring中Quartz的配置Spring中的Quartz配置 解决方案二: 使用Cron表达式 90 * * * * ? 解决方案三: '*' 字符可以用于所有字段,在"分"字段中设为"*"表示"每一分钟"的含义. '?' 字符可

spring定时任务-Spring+quartz本地启动不报错,发布到应用服务器一段时间后报错

问题描述 Spring+quartz本地启动不报错,发布到应用服务器一段时间后报错

项目ITP(六) spring4.0 整合 Quartz 实现动态任务调度

正文  spring4.0 整合 Quartz 实现任务调度.这真是期末项目的最后一篇,剩下到暑假吧.    Quartz 介绍   Quartz is a full-featured, open source job scheduling service that can be integrated with, or used along side virtually any Java application - from the smallest stand-alone applicatio

quartz 定时器-Quartz 定时器动态修改执行时间修改后出现立即执行情况

问题描述 Quartz 定时器动态修改执行时间修改后出现立即执行情况 问题描述: Spring 启动时加载定时器 执行点为 0 0 12 * * ? * 也就是每天12点执行 在11点左右修改为 0 0 14 * * ? * 也就是让它每天14点执行. 在12点多后又重新修改为 0 0 12 * * ? * 此时定时器立即执行了. 想知道是什么原因? 修改定时器的代码如下:job.getJobExpression() 就是传入的修改的执行时间 /** * @Title: modifyJobTim

【JAVA秒会技术之随意切换数据库】Spring如何高效的配置多套数据源

 Spring如何高效的配置多套数据源     真正的开发中,难免要使用多个数据库,进行不同的切换.无论是为了实现"读写分离"也好,还是为了使用不同的数据库("MySQL"或"Oracle"或"SQLServer").传统的方法,是配置多套Spring配置文件与Mysql配置文件,不仅配置起来较为混乱,而且切换及对事物的管理,也很麻烦.下面,博主就介绍一种方法,帮助大家解决"Spring如何高效的配置多套数据源&qu

Spring+quartz第一次执行问题

问题描述 Spring+quartz第一次执行问题,我配置了定时执行每天晚上2点跟每晚2点半,怎么设置启动的时候执行一次<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"