`
阅读更多

 Spring4 Quartz2 动态任务

Spring4整合quartz2.2.3简单动态任务,

Quartz2.2.3简单动态定时任务二,

SimpleScheduleBuilder简单定时任务

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年8月29日

http://fanshuyao.iteye.com/

 

此处使用的是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年8月29日

http://fanshuyao.iteye.com/

1
0
分享到:
评论
1 楼 蕃薯耀 2017-08-29  
Spring4整合quartz2.2.3简单动态任务,
Quartz2.2.3简单动态定时任务二,
SimpleScheduleBuilder简单定时任务

>>>>>>>>>>
蕃薯逃亡

相关推荐

    Spring整合quartz2.2.3总结,quartz动态定时任务,Quartz定时任务集群配置

    Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...

    Quartz2.2.3+Spring4.3.14整合demo

    在 "Quartz2.2.3+Spring4.3.14整合demo" 项目中,我们看到的是一个示例,展示了如何在 Eclipse 开发环境中将这两个库结合使用。Eclipse 是一个流行的 Java IDE,它提供了丰富的功能来支持开发过程。 首先,`....

    spring3整合quartz1.8和spring3整合quartz2.2两个版本示例

    本示例将探讨如何将 Spring 3 与 Quartz 1.8 和 2.2 版本进行整合,以实现高效的任务调度。 首先,我们来看 Spring 3 整合 Quartz 1.8 的步骤: 1. **引入依赖**:在项目中添加 Quartz 和 Spring 相关的库,确保...

    spring boot+vue+quartz2.2.3整合定时调度系统

    spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql,sql脚本在项目里面。sql文件spring boot+vue+quartz2.2.3整合定时调度系统持久化道mysql

    spring4.0.6+quartz 2.2.3 集群示例

    2. **Spring配置**: 创建一个Spring配置文件,例如`quartz-context.xml`,配置Quartz Scheduler,声明`SchedulerFactoryBean`,并设置属性如`configLocation`指向`quartz.properties`文件,以及`...

    quartz-2.2.3版本的quartz初始化sql语句

    总之,Quartz 2.2.3的初始化SQL语句是搭建Quartz任务调度系统的重要环节,它们构建了存储任务调度数据的基础架构,使得Quartz能有效地管理、执行和监控定时任务。正确理解和使用这些SQL语句,有助于确保Quartz在各种...

    quartz-2.2.3-sql.zip

    此外,Quartz支持多种触发器类型,如SimpleTrigger(简单触发器)、CronTrigger(CRON表达式触发器)等,可以根据不同的时间规则定义任务执行。 总的来说,"quartz-2.2.3-sql.zip"文件为开发者提供了在各种常见...

    spring-context-support-4.2.2和quartz-2.2.3所需Jar包

    标题中的"spring-context-support-4.2.2和quartz-2.2.3所需Jar包"涉及到两个关键的Java库:Spring Context Support 4.2.2版本和Quartz Scheduler 2.2.3版本。这两个库在企业级Java应用开发中扮演着重要角色,特别是...

    SpringBoot整合quartz2.2.3自定义数据源和websocket通信

    综上所述,SpringBoot整合quartz 2.2.3和WebSocket通信是一项综合性的任务,涉及到数据库管理、定时任务调度和实时通信等多个领域。通过恰当的配置和编程,我们可以构建出高效、可扩展的微服务系统,满足复杂的企业...

    quartz-2.2.3所需Jar包和spring-webmvc-4.2.6所有jar

    4. **Spring Context Support**:学习如何使用Spring提供的支持类来集成邮件服务、消息队列(JMS)以及定时任务(如Quartz)。 5. **Spring Framework版本管理**:理解不同版本之间的差异,如新特性、改进和兼容性...

    quartz-2.2.3

    - 易于整合:Quartz可以轻松与Spring等框架集成,简化应用的配置和管理。 - 多种持久化方式:除了默认的JDBC存储,Quartz还可以与JPA、Hibernate等ORM框架配合,使用其他持久化机制。 四、数据库表结构 Quartz的...

    ssm框架+quartz2.2Jar包

    4. **启动Scheduler**:在Spring的初始化方法中启动Quartz Scheduler,使其开始监控并执行任务。 5. **使用Quartz API**:在需要的地方,如Service层,可以调用Quartz提供的API来触发或修改任务。 SSM框架结合...

    springbatch_嵌入式jetty_动态控制的quartz

    支持web接口的批处理框架 ...springmvc4.0.7 springbatch3.0.7 quartz2.2.3 mysql5.6 oracle11g junit4.11 log4j1.2.17 mybatis3.4.1 druid1.0.17 smg3(决策引擎) jetty8.1.5 fastjson1.2.7 springjdbc3.2.14

    spring整合Quartz框架过程详解

    Spring 整合 Quartz 框架过程详解 本文主要介绍了 Spring 整合 Quartz 框架的过程详解,通过示例代码对大家的学习或者工作具有参考学习价值。 一、Quartz 框架简介 Quartz 是一个完全由 Java 编写的开源任务调度...

    Spring Boot 2.0.1 整合 Quartz 2.2.3 调度中心实例,含功能效果及使用注意事项.zip

    2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。...

    Spring quartz Job依赖注入使用详解

    主要介绍了Spring quartz Job依赖注入使用详解的相关资料,Spring quartz Job不能依赖注入,Spring整合quartz Job任务不能注入Spring4整合quartz2.2.3中Job任务使用@Autowired不能注入,需要的朋友可以参考下

    spring定时器所需jar包

    Quartz 2.2.3是Quartz的一个稳定版本,包含了大量的改进和修复,可以处理大量的并发任务,并且支持丰富的调度策略,如CRON表达式、简单触发器、复合触发器等。 Quartz库的使用步骤大致如下: 1. **添加依赖**:在...

    ssm(spring+spring mvc+mybatis)高仿小米电子商城项目实例

    任务调度:Spring + Quartz 2.2.3 持久层框架:MyBatis 3.4.2 + Mybatis-plus 2.0.1 日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:...

    ssm(spring+spring mvc+mybatis)电子商城项目

    任务调度:Spring + Quartz 2.2.3 持久层框架:MyBatis 3.4.2 + Mybatis-plus 2.0.1 日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:...

    Java项目:(小程序)物业管理系统(spring+spring mvc+mybatis+layui+微信小程)

    一、项目简述 本系统功能包括: 微信小程序物业管理系统,微信朝胞括以下几个模 块: 社区公告、报修、信息采集、生活缴费、二手置换 微信小程序后台管理界面可以...项目技术: spring+spring mvc+mybatis+layui等等。

Global site tag (gtag.js) - Google Analytics