Spring4 Quartz2 动态任务,Spring4整合quartz2.2.3简单动态任务
Spring4 Quartz2 动态任务
Spring4整合quartz2.2.3简单动态任务,
Quartz2.2.3简单动态定时任务二,
SimpleScheduleBuilder简单定时任务
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年9月6日
http://www.cnblogs.com/fanshuyao/
此处使用的是Quartz中SimpleScheduleBuilder类,非CronScheduleBuilder,CronScheduleBuilder是Cron表达式的。具体请自行百度。
- /**
- * 新增任务
- * @param scheduleJob
- * @throws Exception
- */
- @Override
- @SuppressWarnings("unchecked")
- public void addJobSimple(ScheduleJob scheduleJob) throws Exception{
- TriggerKey triggerKey = TriggerKey.triggerKey(scheduleJob.getJobName(), scheduleJob.getJobGroup());
- //任务触发
- Trigger trigger = scheduler.getTrigger(triggerKey);
- if (null == trigger) {
- JobDetail jobDetail = JobBuilder.newJob((Class<? extends Job>) Class.forName(scheduleJob.getClazz()))
- .withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).build();
- jobDetail.getJobDataMap().put("scheduleJob", scheduleJob);
- SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule();
- if("秒".equals(scheduleJob.getTimeType()) ||
- "second".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue()).repeatForever();
- }else if("分".equals(scheduleJob.getTimeType()) || "分钟".equals(scheduleJob.getTimeType()) ||
- "minute".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInMinutes(scheduleJob.getTimeValue()).repeatForever();
- }else if("时".equals(scheduleJob.getTimeType()) || "小时".equals(scheduleJob.getTimeType()) ||
- "hour".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).repeatForever();
- }else if("天".equals(scheduleJob.getTimeType()) ||
- "date".equalsIgnoreCase(scheduleJob.getTimeType())){
- simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).repeatForever();
- }
- ScheduleBuilder<SimpleTrigger> schedBuilder = simpleScheduleBuilder.withMisfireHandlingInstructionNextWithRemainingCount();
- trigger =TriggerBuilder.newTrigger().withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup())
- .withSchedule(schedBuilder).build();
- trigger = TriggerBuilder.newTrigger().withIdentity(scheduleJob.getJobName(), scheduleJob.getJobGroup()).withSchedule(schedBuilder).build();
- scheduler.scheduleJob(jobDetail, trigger);
- log.info(CC.LOG_PREFIX + "新增简单任务:"+JasonUtils.Object2String(scheduleJob));
- }else {
- this.updateJobCron(scheduleJob);
- }
- }
需要注意是的,当定时任务只执行一次时,就要仔细看代码,如上面的简单定时任务,刚开始是我这样的:
- simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue());
结果只执行一次,而我需要的是不断循环执行,最后改成:
- simpleScheduleBuilder.withIntervalInSeconds(scheduleJob.getTimeValue()).repeatForever();
可以看出,后面多了个:repeatForever(),表示永远重复。
如果是希望执行多少次后不执行,就使用:.withRepeatCount(triggerRepeatCount),如下:
- simpleScheduleBuilder.withIntervalInHours(scheduleJob.getTimeValue()).withRepeatCount(triggerRepeatCount);
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
©Copyright 蕃薯耀 2017年9月6日
http://www.cnblogs.com/fanshuyao/
Spring4 Quartz2 动态任务,Spring4整合quartz2.2.3简单动态任务的更多相关文章
- Spring4整合quartz2.2.3,quartz动态任务
Spring4整合quartz2.2.3,quartz动态任务 >>>>>>>>>>>>>>>>> ...
- Spring定时任务,Spring4整合quartz2.2,quartz-scheduler定时任务
Spring4整合quartz2.2,quartz-scheduler定时任务,Spring定时任务 >>>>>>>>>>>>& ...
- Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置
Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置 >>>>>>>>>>>>&g ...
- Spring3 整合Quartz2 实现定时任务
一.Quartz简介 Quartz是一个由James House创立的开源项目,是一个功能强大的作业调度工具,可以计划的执行任务,定时.循环或在某一个时间来执行我们需要做的事,这可以给我们工作上带来很 ...
- spring4+springmvc+springdataJPA+hibernate4+Junit4整合懒加载问题
文章目录 技术交流 #摘要 本文主要是为了解决"spring4+springmvc+springdataJPA+hibernate4+junit4整合",注解了OneToMany. ...
- Redis的简单动态字符串实现
Redis 没有直接使用 C 语言传统的字符串表示(以空字符结尾的字符数组,以下简称 C 字符串), 而是自己构建了一种名为简单动态字符串(simple dynamic string,sds)的抽象类 ...
- 【转载】Ssh整合开发介绍和简单的登入案例实现
Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一 介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...
- Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成)
Vue+Element的动态表单,动态表格(后端发送配置,前端动态生成) 动态表单生成 ElementUI官网引导 Element表单生成 Element动态增减表单,在线代码 关键配置 templa ...
- Redis数据结构之简单动态字符串SDS
Redis的底层数据结构非常多,其中包括SDS.ZipList.SkipList.LinkedList.HashTable.Intset等.如果你对Redis的理解还只停留在get.set的水平的话, ...
随机推荐
- Hibernate学习一:Hibernate注解CascadeType
http://zy19982004.iteye.com/blog/1721846 ———————————————————————————————————————————————————————— Hi ...
- Java中的Set与List 的关系与区别
两个接口都是继承自Collection. List (inteface) 次序是List 的最重要特点,它确保维护元素特定的顺序. --ArrayList 允许对元素快速随机访问. --LinkedL ...
- 史上最全 Css Hack汇总
前言 每次要找个东西都得慢慢去翻自己收集的一些东西,每次都是那么花时间,再加上有时存放时间久远就忘了当时是存在哪了,为了方便查询及阅读,决定把一些Css Hack 收集起来... 1.区别不同浏览器, ...
- Python 内置方法new
class Dog(object): def __new__(self): print("i am new .") def __init__(self): print(" ...
- Linux之安装本地Python和pip
wget https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tgz tar zxfv Python-3.4.5.tgz ./configure ...
- MyGUI 解析
MyGUI源码还是比较简单的,我们在这里只是简单分析相应控件如何生成,如何渲染. 我们分成三个部分来说明,分别是资源类型,控件生成,控件渲染. 资源类型: ResourceSkin:用于记录各个控件状 ...
- python3 异步模块asyncio
yield方法引入, 这里存在的问题是,如果你想创建从0到1,000,000这样一个很大的序列,你不得不创建能容纳1,000,000个整数的列表. 但是当加入了生成器之后,你可以不用创建完整的序列,你 ...
- 【转】【Html】Vuejs2.0学习之二(Render函数,createElement,vm.$slots,函数化组件,模板编译,JSX)
1.Render函数 所以直接来到Render,本来也想跳过,发现后面的路由貌似跟它还有点关联.先来看看Render 1.1 官网一开始就看的挺懵的,不知道讲的是啥,动手试了一下,一开头讲的是Rend ...
- JDBC是什么?
JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是用于在Java语 ...
- 【转载】C#反射机制详解
反射的定义:审查元数据并收集关於它的类型信息的能力,元数据(编辑后的基本数据单元)就是一大堆表,编译器会创建一个类定义表,一个字段定义表,一个方法定义表等,System.Reflection命名空间包 ...