1. package com.mc.bsframe.job;
  2.  
  3. import org.quartz.Scheduler;
  4. import org.quartz.SchedulerException;
  5. import org.quartz.TriggerKey;
  6. import org.quartz.impl.triggers.SimpleTriggerImpl;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8.  
  9. import com.mc.bsframe.service.TestService;
  10. import com.mc.bsframe.util.TimeUtils;
  11.  
  12. public class TestJob {
  13.  
  14. @Autowired
  15. private TestService testSevice;
  16.  
  17. public void doSomething() {
  18. testSevice.sayHi();
  19. System.err.println("****:" + TimeUtils.getCurrentTime());
  20. }
  21.  
  22. private Scheduler scheduler;
  23.  
  24. public Scheduler getScheduler() {
  25. return scheduler;
  26. }
  27.  
  28. public void setScheduler(Scheduler scheduler) {
  29. this.scheduler = scheduler;
  30. }
  31.  
  32. public void restJob(long time) {
  33. TriggerKey triggerKey=new TriggerKey("testTrigger", Scheduler.DEFAULT_GROUP);
  34. SimpleTriggerImpl simpleTrigger=null;
  35. try {
  36. simpleTrigger= (SimpleTriggerImpl) scheduler.getTrigger(triggerKey);
  37. } catch (SchedulerException e) {
  38. e.printStackTrace();
  39. }
  40. simpleTrigger.setRepeatInterval(time);
  41.  
  42. try {
  43. scheduler.rescheduleJob(triggerKey,simpleTrigger);
  44. } catch (SchedulerException e) {
  45. // TODO Auto-generated catch block
  46. e.printStackTrace();
  47. }
  48. }
  49. }

代码如上:在任务类中注入Scheduler,然后添加restJob方法。

配置文件如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  4.  
  5. <!-- 要执行任务的任务类。 -->
  6. <bean id="testQuartz" class="com.mc.bsframe.job.TestJob">
  7. <property name="scheduler" ref="schedulerFactoryBean"></property>
  8. </bean>
  9.  
  10. <!-- 将需要执行的定时任务注入JOB中。 -->
  11. <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
  12. <property name="targetObject" ref="testQuartz"></property>
  13. <!-- 任务类中需要执行的方法 -->
  14. <property name="targetMethod" value="doSomething"></property>
  15. <!-- 上一次未执行完成的,要等待有再执行。 -->
  16. <property name="concurrent" value="false"></property>
  17. </bean>
  18.  
  19. <!-- 基本的定时器,会绑定具体的任务。 -->
  20. <bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
  21. <property name="jobDetail" ref="testJob"></property>
  22. <property name="startDelay" value="3000"></property>
  23. <property name="repeatInterval" value="2000"></property>
  24. </bean>
  25.  
  26. <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
  27. <property name="triggers">
  28. <list>
  29. <ref bean="testTrigger"></ref>
  30. </list>
  31. </property>
  32. </bean>
  33. </beans>

使用方法:

  1. @Autowired
  2. @Qualifier(value="testQuartz")
  3. private TestJob job;
  4.  
  5. @RequestMapping("/job")
  6. public void job(Long time){
  7. job.restJob(time);
  8. }

Quartz总结(三):动态修改定时器一的更多相关文章

  1. Quartz总结(四):动态修改定时器二

    前文:http://www.cnblogs.com/LiuChunfu/p/5598806.html 提到了一种动态修改定时器的方法, 其本质就是在job方法中注入Schedular的对象,从Sche ...

  2. 动态修改Spring定时器

    spring 的Quartz定时器的功能非常强大,可以在特定的年月日小时分秒的时间点触发时间,完成事件的调度,就像windows中得计划任务一样.下面看一个典型的Quartz定时器的实现:   1.首 ...

  3. 自己动手丰衣足食之轮播图一动态修改marginTop属性实现轮播图

    引言 学习jQuery有年头了,刚开始学习时自己动手写过轮播图,放的久了以至于忘了大致思路了.现在转而做前端,抽空把jquery轮播图拿出来写一写,把各种思路都自己练习练习,这里主要使用动态修改mar ...

  4. WWF3动态修改工作流<第九篇>

    一.动态添加或移除工作流活动 首先添加一个顺序的空白工作流. 然后添加一个Winform程序,界面如下: 代码如下: namespace WinForm { public partial class ...

  5. 动态修改 C 语言函数的实现

    Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省.进行方法调剂.为类增加属性.修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 O ...

  6. xml动态修改 dom4j修改

    xml的动态修改需要传入的参数 xml的位置(tomcat中的发布位置).修改后的xml需要保存的位置(因为动态修改,所以建议和xml未修改前的位置相同).添加的节点的信息.或者修改的节点的信息 SA ...

  7. ASP.NET中直接用C# 动态修改CSS样式

    ASP.NET中直接用C# 动态修改CSS样式  wonsoft (wonsoft@163.com) 使用JavaScript控制CSS样式有点麻烦,还是觉得直接使用C#操作更方便快捷,本文通过两个B ...

  8. [C#] 将NLog输出到RichTextBox,并在运行时动态修改日志级别过滤

    作者: zyl910 一.缘由 NLog是一个很好用的日志类库.利用它,可以很方便的将日志输出到 调试器.文件 等目标,还支持输出到窗体界面中的RichTextBox等目标. 而且它还支持在运行时修改 ...

  9. 微信小程序开发小技巧——单击事件传参、动态修改样式、轮播样式修改等

    一. 脚本部分: 1. 表达式无效的处理: 如果你发现自己编写的表达式无效或者数据不展示,那么请先检查你的表达式是否有添加{{}},小程序中全部都要添加的,只要是在模板中调用js中的数据 2. 获取元 ...

随机推荐

  1. hdu_5748_Bellovin(LIS)

    题目链接:hdu_5748_Bellovin 题意: 给你一个数列ai,设f(a1,a2,a3,..an)=(f1,f2,f3,...,fn),其中fi表示以ai结尾的最长递增子序列长度,注意:必须要 ...

  2. nefu 446 今年暑假不AC(贪心)

    Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会 ...

  3. Linux 查硬件配置

    一:查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如 ...

  4. Eclipse下配置和使用Hibernate Tools

    本文转自:http://radiumwong.iteye.com/blog/358585 Hibernate Tools可以通过访问已经建立好的数据库以反向工程方式生成POJO文件. 今天就来说一下如 ...

  5. POJ 3468<线段树,区间add>

    题目连接 //位运算 k<<1 相当于 k*2 k<<1|1 相当于 k*2+1 /* 修改区间内的值,并且维护区间和. 详见代码 */ #include<cstdio& ...

  6. USB鼠标线序

    鼠标线断了,找了个废弃的手机充电线接上,特记录线序如下: 红————白          白————橙绿————绿黑————蓝

  7. 【转载】GDI 映像方式 之 SetViewportOrgEx 与 SetWindowOrgEx 解析

    SetViewportOrgEx 与 SetWindowOrgEx 解析 这两个函数,用来改变视端口和窗口的原点,并都具有改变轴的效果,以致(0,0)不再指左上角. 「视端口」是依据设备坐标(图素)的 ...

  8. javascript语句语义大全(2)

    1. 四则运算相关 +,-,*,/,% 分别是加减乘除和取余 2.Math.pow(a,b) a的b次方 3.toFixed(a) 四舍五入为指定小数位数的数字 4. k++; ++K 看似相同但是在 ...

  9. Java中域 实例域 静态域

    1.java中的域 所谓的域,翻译成英文就是field, 也就是我们常说的字段,或者说是属性. 比如类的字段(属性),局部的,全局的.所谓域,其实是“field”的翻译 然后实例域,就是 实例(&qu ...

  10. Contest - 多校训练(985专场) Problem C: 985的方格难题

    题目链接:http://acm.zzuli.edu.cn/zzuliacm/problem.php?cid=1157&pid=2 Description 985走入了一个n * n的方格地图, ...