Quartz动态改变任务时间
基于quartz-2.2 的动态任务调度
Quartz是一个完全由java编写的开源作业调度框架。
调度器
Quartz框架的核心是调度器。调度器负责管理Quartz应用运行时环境。调度器不是靠自己做所有的工作,而是依赖框架内一些非常重要的部件。Quartz不仅仅是线程和线程管理。为确保可伸缩性,Quartz采用了基于多线程的架构。启动时,框架初始化一套worker线程,这套线程被调度器用来执行预定的作业。这就是Quartz怎样能并发运行多个作业的原理。Quartz依赖一套松耦合的线程池管理部件来管理线程环境。
今天测试了下基于quartz-2.2动态改变调度时间
<bean id="producer" class="com.springmvc.controller.Producer" />
<bean id="schedulerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="producer"/>
<property name="targetMethod" value="executeListener"/>
<property name="concurrent" value="false"/>
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="schedulerJobDetail"/>
<!-- 10 seconds -->
<property name="startDelay" value="10000" />
<!-- repeat every 5 seconds -->
<property name="repeatInterval" value="5000" />
</bean>
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref local="cronTrigger"/>
</list>
</property>
</bean>
POJO执行任务类
public class Producer {
public void executeListener() {
System.out.println("执行任务 ,当前执行时间 :: " + (new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(new Date()));
}
}
随机一个数,测试执行的时间
@Controller
@RequestMapping("/")
public class ScheduleInfoAction {
@Autowired
org.springframework.scheduling.quartz.SchedulerFactoryBean myScheduler;
@Autowired
org.springframework.scheduling.quartz.SimpleTriggerFactoryBean oldTrigger;
@RequestMapping(value="/rereshSheduleTrigger",method=RequestMethod.GET)
public void retScheduleJob() throws SchedulerException, ParseException {
TriggerBuilder<SimpleTrigger> tb = oldTrigger.getObject().getTriggerBuilder();
int number = new Random().nextInt(10) + 1;
System.out.println("动态改变执行时间为"+number+"秒");
Trigger newTrigger = tb.withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(number)).build();
//Trigger trigger = tb.withSchedule(CronScheduleBuilder.cronSchedule("0/5 * * * * ?")).build();
myScheduler.getObject().rescheduleJob(oldTrigger.getObject().getKey(), newTrigger);
}
}
测试图如下,默认是5秒钟执行一次,加了个随机数让任务随机执行。
这里我用了SimpleScheduleBuilder。也可以用CronScheduleBuilder 这样就可以用cron表达式来实现。

Quartz动态改变任务时间的更多相关文章
- 用Navicat建MySQL数据库表,动态改变创建时间和更新时间戳
1.create_time 记录创建的时间,设默认值为:CURRENT_TIMESATMP 注意:不勾选那个[根据当前时间戳更新] 2.operator_time 更新记录的时间,勾选那个[根据当前时 ...
- Quartz动态添加,修改,删除任务(暂停,任务状态,恢复,最近触发时间)
首页 博客 学院 下载 图文课 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye GitChat 写博客 小程序 消息 登录注册 关闭 quartz_Cron表达式一分钟教程 09-05 ...
- js动态改变setInterval的时间
<!DOCTYPE html> <html> <head> <!--meta name="viewport" content=" ...
- SpringBoot2.0整合Quartz实现动态设置定时任务时间
一. 引入依赖 <!-- 引入quartz依赖 --> <dependency> <groupId>org.springframework.boot</ ...
- Quartz动态添加、修改和删除定时任务
任务调度开源框架Quartz动态添加.修改和删除定时任务 Quartz 是个开源的作业调度框架,为在 Java 应用程序中进行作业调度提供了简单却强大的机制.Quartz框架包含了调度器监听.作业和触 ...
- Quartz动态配置表达的方法
在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度.有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间, ...
- jquery.range.js左右滑动选取数值插件,动态改变进度。
作为一个初级前端工作人员,我最近在做一个关于直播的项目,其中一个功能要求是设置延迟时间, 所以就用到了jquery.range.js这个插件.插件中设置$(".single-slider&q ...
- Spring4整合quartz2.2.3,quartz动态任务
Spring4整合quartz2.2.3,quartz动态任务 >>>>>>>>>>>>>>>>> ...
- Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置
Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置 >>>>>>>>>>>>&g ...
随机推荐
- 记录idea maven项目打包部署web项目mapper扫描失败
最开始以为这里出了问题,后来加上以后还是不能把mapper.xml打包进去 这是报的异常信息 Mybatis启动老是报绑定错误(找不到Mapper对应的 SQL配置),经过一番Google未能解决问题 ...
- nodeJS里面的模块
this 打开cmd,执行如下命令 nodeconsole.log(this); 输出如上信息,表示this是global,每个电脑的配置信息不一样的话,可能会有所差别的. 然后新建一个文件,写下如下 ...
- SQL用了Union后的排序问题
最近使用SQL语句进行UNION查询,惊奇的发现:SQL没问题,UNION查询也没问题,都可以得到想要的结果,可是在对结果进行排序的时候,却出问题了. 1.UNION查询没问题 SELECT `id` ...
- thinkphp5z
解决验证类下找不到指定的类,就在D:\phpStudy\www\vuethink\php\application\admin\validate\service.php,缺少验证类文件service.p ...
- 宝塔服务器管理助手Linux面版-使用教程
在顺利安装宝塔服务器linux面板之后,我们打开这个面板,UI界面设计的很简介,所有命令一看就知道是干什么用的,和我们以前用过的虚拟主机管理后台是很像的. 方法/步骤 1 使用方法如下: 面板地址:h ...
- destoon框架二次开发【整理】
=========================================================== destoon使用中的一些心得 ====================== ...
- JAVA异步加回调的例子
package com.sunchao.callback; /** * callback interface * @author Administrator * */ public interface ...
- P1251 餐巾计划问题
P1251 餐巾计划问题 题目描述 一个餐厅在相继的 N 天里,每天需用的餐巾数不尽相同.假设第 iii 天需要 rir_iri块餐巾( i=1,2,...,N).餐厅可以购买新的餐巾,每块餐巾的费 ...
- c#动态编译并执行字符串
比较简单,步骤是这样的 string -> compiler -> assembly -> reflection -> execution 直接上代码: using Syste ...
- start tomcat with debugging mode
For this, you must run your application in debug mode, which requires below parameters. -Xdebug -Xru ...