Quartz总结(三):动态修改定时器一
- package com.mc.bsframe.job;
- import org.quartz.Scheduler;
- import org.quartz.SchedulerException;
- import org.quartz.TriggerKey;
- import org.quartz.impl.triggers.SimpleTriggerImpl;
- import org.springframework.beans.factory.annotation.Autowired;
- import com.mc.bsframe.service.TestService;
- import com.mc.bsframe.util.TimeUtils;
- public class TestJob {
- @Autowired
- private TestService testSevice;
- public void doSomething() {
- testSevice.sayHi();
- System.err.println("****:" + TimeUtils.getCurrentTime());
- }
- private Scheduler scheduler;
- public Scheduler getScheduler() {
- return scheduler;
- }
- public void setScheduler(Scheduler scheduler) {
- this.scheduler = scheduler;
- }
- public void restJob(long time) {
- TriggerKey triggerKey=new TriggerKey("testTrigger", Scheduler.DEFAULT_GROUP);
- SimpleTriggerImpl simpleTrigger=null;
- try {
- simpleTrigger= (SimpleTriggerImpl) scheduler.getTrigger(triggerKey);
- } catch (SchedulerException e) {
- e.printStackTrace();
- }
- simpleTrigger.setRepeatInterval(time);
- try {
- scheduler.rescheduleJob(triggerKey,simpleTrigger);
- } catch (SchedulerException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
代码如上:在任务类中注入Scheduler,然后添加restJob方法。
配置文件如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
- <!-- 要执行任务的任务类。 -->
- <bean id="testQuartz" class="com.mc.bsframe.job.TestJob">
- <property name="scheduler" ref="schedulerFactoryBean"></property>
- </bean>
- <!-- 将需要执行的定时任务注入JOB中。 -->
- <bean id="testJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
- <property name="targetObject" ref="testQuartz"></property>
- <!-- 任务类中需要执行的方法 -->
- <property name="targetMethod" value="doSomething"></property>
- <!-- 上一次未执行完成的,要等待有再执行。 -->
- <property name="concurrent" value="false"></property>
- </bean>
- <!-- 基本的定时器,会绑定具体的任务。 -->
- <bean id="testTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
- <property name="jobDetail" ref="testJob"></property>
- <property name="startDelay" value="3000"></property>
- <property name="repeatInterval" value="2000"></property>
- </bean>
- <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <property name="triggers">
- <list>
- <ref bean="testTrigger"></ref>
- </list>
- </property>
- </bean>
- </beans>
使用方法:
- @Autowired
- @Qualifier(value="testQuartz")
- private TestJob job;
- @RequestMapping("/job")
- public void job(Long time){
- job.restJob(time);
- }
Quartz总结(三):动态修改定时器一的更多相关文章
- Quartz总结(四):动态修改定时器二
前文:http://www.cnblogs.com/LiuChunfu/p/5598806.html 提到了一种动态修改定时器的方法, 其本质就是在job方法中注入Schedular的对象,从Sche ...
- 动态修改Spring定时器
spring 的Quartz定时器的功能非常强大,可以在特定的年月日小时分秒的时间点触发时间,完成事件的调度,就像windows中得计划任务一样.下面看一个典型的Quartz定时器的实现: 1.首 ...
- 自己动手丰衣足食之轮播图一动态修改marginTop属性实现轮播图
引言 学习jQuery有年头了,刚开始学习时自己动手写过轮播图,放的久了以至于忘了大致思路了.现在转而做前端,抽空把jquery轮播图拿出来写一写,把各种思路都自己练习练习,这里主要使用动态修改mar ...
- WWF3动态修改工作流<第九篇>
一.动态添加或移除工作流活动 首先添加一个顺序的空白工作流. 然后添加一个Winform程序,界面如下: 代码如下: namespace WinForm { public partial class ...
- 动态修改 C 语言函数的实现
Objective-C 作为基于 Runtime 的语言,它有非常强大的动态特性,可以在运行期间自省.进行方法调剂.为类增加属性.修改消息转发链路,在代码运行期间通过 Runtime 几乎可以修改 O ...
- xml动态修改 dom4j修改
xml的动态修改需要传入的参数 xml的位置(tomcat中的发布位置).修改后的xml需要保存的位置(因为动态修改,所以建议和xml未修改前的位置相同).添加的节点的信息.或者修改的节点的信息 SA ...
- ASP.NET中直接用C# 动态修改CSS样式
ASP.NET中直接用C# 动态修改CSS样式 wonsoft (wonsoft@163.com) 使用JavaScript控制CSS样式有点麻烦,还是觉得直接使用C#操作更方便快捷,本文通过两个B ...
- [C#] 将NLog输出到RichTextBox,并在运行时动态修改日志级别过滤
作者: zyl910 一.缘由 NLog是一个很好用的日志类库.利用它,可以很方便的将日志输出到 调试器.文件 等目标,还支持输出到窗体界面中的RichTextBox等目标. 而且它还支持在运行时修改 ...
- 微信小程序开发小技巧——单击事件传参、动态修改样式、轮播样式修改等
一. 脚本部分: 1. 表达式无效的处理: 如果你发现自己编写的表达式无效或者数据不展示,那么请先检查你的表达式是否有添加{{}},小程序中全部都要添加的,只要是在模板中调用js中的数据 2. 获取元 ...
随机推荐
- hdu_5748_Bellovin(LIS)
题目链接:hdu_5748_Bellovin 题意: 给你一个数列ai,设f(a1,a2,a3,..an)=(f1,f2,f3,...,fn),其中fi表示以ai结尾的最长递增子序列长度,注意:必须要 ...
- nefu 446 今年暑假不AC(贪心)
Description “今年暑假不AC?” “是的.” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%...” 确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会 ...
- Linux 查硬件配置
一:查看cpu more /proc/cpuinfo | grep "model name" grep "model name" /proc/cpuinfo 如 ...
- Eclipse下配置和使用Hibernate Tools
本文转自:http://radiumwong.iteye.com/blog/358585 Hibernate Tools可以通过访问已经建立好的数据库以反向工程方式生成POJO文件. 今天就来说一下如 ...
- POJ 3468<线段树,区间add>
题目连接 //位运算 k<<1 相当于 k*2 k<<1|1 相当于 k*2+1 /* 修改区间内的值,并且维护区间和. 详见代码 */ #include<cstdio& ...
- USB鼠标线序
鼠标线断了,找了个废弃的手机充电线接上,特记录线序如下: 红————白 白————橙绿————绿黑————蓝
- 【转载】GDI 映像方式 之 SetViewportOrgEx 与 SetWindowOrgEx 解析
SetViewportOrgEx 与 SetWindowOrgEx 解析 这两个函数,用来改变视端口和窗口的原点,并都具有改变轴的效果,以致(0,0)不再指左上角. 「视端口」是依据设备坐标(图素)的 ...
- javascript语句语义大全(2)
1. 四则运算相关 +,-,*,/,% 分别是加减乘除和取余 2.Math.pow(a,b) a的b次方 3.toFixed(a) 四舍五入为指定小数位数的数字 4. k++; ++K 看似相同但是在 ...
- Java中域 实例域 静态域
1.java中的域 所谓的域,翻译成英文就是field, 也就是我们常说的字段,或者说是属性. 比如类的字段(属性),局部的,全局的.所谓域,其实是“field”的翻译 然后实例域,就是 实例(&qu ...
- Contest - 多校训练(985专场) Problem C: 985的方格难题
题目链接:http://acm.zzuli.edu.cn/zzuliacm/problem.php?cid=1157&pid=2 Description 985走入了一个n * n的方格地图, ...