//表达式任务设置
try {
// 设置触发器
CronTrigger cronTrigger = new CronTrigger("cronTrigger3", "DEFAULT");
// 设置任务触发时间
CronExpression cexp = new CronExpression("0/5 * * ? * * *");
// 设置触发器
cronTrigger.setCronExpression(cexp);
// 设置任务内容
JobDataMap jobDataMap = new JobDataMap();
// 需要保存spring的bean类 才能反射出 调用方法
jobDataMap.put("targetObject",
springContext.getBean("simpleService"));
// 调用方法
jobDataMap.put("targetMethod", "testMethod2");
jobDataMap.put("shouldRecover", "true");
// 设置任务详细信息
JobDetail newJob = new JobDetail();
// 任务名称
newJob.setName("jobDetail3");
// 任务详细配置
newJob.setJobDataMap(jobDataMap);
// 分组
newJob.setGroup("DEFAULT");
// 实现类(由该类去通过反射调用提供的方法)
newJob.setJobClass(MethodInvokingJobDetailFactoryBean.MethodInvokingJob.class);
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
// 持久化至数据库
scheduler.scheduleJob(newJob, cronTrigger);
scheduler.start();
// jobStoreTX.storeJobAndTrigger(new SchedulingContext(), newJob,
// cronTrigger);
} catch (Exception e) {
e.printStackTrace();
}
//根据开始时间 结束时间来设置
//设置ID
trggerInfo.setId(IDGenerator.getId());
String str=time;
//判断开始时间是否为NUll
if(str==null){
return;
}
JobDataMap jobDataMap = new JobDataMap();
// 需要保存spring的bean类 才能反射出 调用方法
jobDataMap.put("targetObject",
trggerInfo.getTargetObject());
// 调用方法
jobDataMap.put("targetMethod",METHOD);
jobDataMap.put("taskInfoId", trggerInfo.getId());
jobDataMap.put("taskType", trggerInfo.getTriggerType());
jobDataMap.put("shouldRecover", "true");
JobDetail jobDetail = new JobDetail();
jobDetail.setGroup(GROUP);
jobDetail.setName(trggerInfo.getId());
jobDetail
.setJobClass(DBClusterQuartzJobBean.class);
jobDetail.setJobDataMap(jobDataMap);
//获得操作类
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
SimpleDateFormat formatDate = new SimpleDateFormat(DateUtil.DEFAULT_TIMESTAMP_FORMAT);
// 触发器名称 触发器分组 执行次数(从0开始计算) 间隔时间(毫秒级)
SimpleTrigger simpleTrigger = new SimpleTrigger();
// 设置分组名称
simpleTrigger.setGroup(GROUP);
// 触发器名称
simpleTrigger.setName(jobDetail.getName()+Trigger);
// SimpleTrigger.REPEAT_INDEFINITELY 不限次数
// simpleTrigger.setRepeatCount(SimpleTrigger.REPEAT_INDEFINITELY);
//执行次数一次
simpleTrigger.setRepeatCount(1);
//间隔 一毫秒
simpleTrigger.setRepeatInterval(1);
// 设置开始时间
simpleTrigger.setStartTime(formatDate.parse(str));
// 从1开始
simpleTrigger.setTimesTriggered(1);
scheduler.scheduleJob(jobDetail, simpleTrigger);
//保存任务详情
trggerInfo.setJobName(jobDetail.getName());
trggerInfo.setTriggerName(simpleTrigger.getName());
taskInfoDao.insertTaskInfo(trggerInfo);
相关示例在:http://daoshud1.iteye.com/blog/1955099下载
分享到:
相关推荐
总结,Spring Quartz集群配置涉及到多个步骤,包括选择合适的Job Store、配置Spring集成、定义定时任务以及优化集群设置。正确配置后,我们可以获得高可用和可扩展的定时任务调度系统,满足大规模分布式系统的需求。
在IT行业中,Spring框架是Java应用开发中的基石,而Quartz则是广泛...通过上述步骤,你已经掌握了Spring集成Quartz集群配置的基本概念。在实践中,根据具体需求调整配置,可以实现高效、稳定且可扩展的任务调度系统。
Quartz集群通过共享内存中的状态来实现任务的分配和执行,当一个节点失败时,其他节点能够接管未完成的任务。实现Quartz集群,需要配置多个Quartz服务器共享同一份数据库存储,用于保存Job、Trigger以及运行状态等...
java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...
Spring整合Quartz 2.2.3是Java开发者在实现定时任务时常用的一种技术组合。Quartz是一款开源的作业调度框架,它允许程序在特定时间执行预定的任务,而Spring则是一个强大的企业级应用开发框架,提供了丰富的依赖注入...
在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...
5. **集群配置**:为了实现高可用的Quartz集群,你需要配置多个节点共享同一个数据库存储的作业和触发器信息。Quartz支持多种持久化策略,如JDBC、RAMJobStore等,选择数据库存储能保证在集群中的任务状态一致性。 ...
以下将详细介绍如何在Spring Boot应用中使用YAML文件配置Quartz定时任务,以及涉及的Spring Cloud Alibaba、Dubbo和Nacos的相关知识。 首先,我们需要在`pom.xml`中引入相关的依赖。Spring Boot的`spring-boot-...
在多应用服务器负载均衡环境下,Spring Quartz定时任务的重复执行问题是一个常见的挑战。Spring Quartz是一个强大的、开源的作业调度框架,允许开发者定义和执行复杂的定时任务。然而,当多个服务器实例并行运行时,...
这个压缩包“Spring Quartz动态配置时间.rar”包含的PDF文档很可能是关于如何在Spring框架中使用Quartz进行动态配置时间的详细教程。下面将详细介绍Spring集成Quartz进行动态任务调度的相关知识点。 1. **Quartz...
3. **监控和管理**: 实现对Quartz集群的监控,如任务状态、运行时性能等,以便及时发现和解决问题。 总结,Quartz+Spring的分布式集群调度方案能够帮助开发者构建稳定且可扩展的定时任务系统。通过合理配置和实践,...
一个基于springboot的quartz集群dome。 向http://localhost:9090/job/addjob注入3个参数 类名:(及时定时任务的类如:com.ybjdw.site.job.NewJob) 组名:随意 定时启动方法:如“0/3 * * * * ?”(每3秒启动一次...
本项目将Spring Boot与Quartz结合,实现了动态任务管理,并且支持在集群环境中的部署。 集成Quartz到Spring Boot应用中,首先需要在`pom.xml`文件中添加相应的依赖。Quartz的Spring Boot Starter可以简化配置,使得...
总的来说,将Quartz2.2.1与Spring3.1.1集成并在集群环境中运行,需要深入理解Quartz的配置和Spring的bean管理,同时关注集群的稳定性和容错性。通过合理配置和编程,我们可以创建一个高效、可靠的定时任务执行系统。...
【Spring集成Quartz定时任务与数据库实现集群详解】 在企业级应用中,定时任务的管理是必不可少的一部分,Spring框架提供了与Quartz的集成,使得我们可以方便地创建和管理定时任务。Quartz是一款强大的、开放源代码...
至于数据库,Quartz集群需要一个共享的数据库存储job和trigger的信息,这就是`dbTables`文件所涉及的内容。Quartz会在数据库中创建一系列的表,用于存储任务元数据,如job信息、trigger信息等。这些表的设计和初始化...
总的来说,Spring集成Quartz集群配置是一个涉及到多个组件协同工作的过程,包括Spring容器、Quartz调度器、数据库存储以及集群间的通信。正确配置和使用这些元素可以构建出一个稳定、高可用的定时任务系统。在实际...
SpringBoot整合Quartz实现定时任务调度是企业级应用中常见的需求,主要用于自动化执行某些周期性的...在集群环境中,通过配置和Quartz的内置机制,我们可以实现任务的分布式执行和故障恢复,提高系统的稳定性和可靠性。