miaoshi
2017-12-23 16:57:41
Spring整合Quartz实现分布式集群实例
最近项目做了负载均衡,而项目又用Quartz做了定时任务,导致在部署多系统后任务重复执行;所以用Quartz集群解决这一问题。
保障Quartz在分布部署时只有一个定时任务运行,并且在当前运行定时任务的服务器发生宕机后,另外的服务器能接管Quartz定时任务,进行继续执行。
1.Quartz集群架构图:
2.Quartz如何保证多个节点的应用只进行一次调度
Quartz的集群是在同一个数据库下, 由数据库的数据来确定调度任务是否正在执行, 正在执行则其他服务器就不能去执行该行调度数据。
3.Quartz集群主要配置代码:
<bean id="scheduler" lazy-init="true" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="autoStartup" value="true" /> <property name="triggers"> <list> <!-- 配置启动时间 --> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="TestJobDetail" /> <property name="cronExpression" value="10 * * * * ?" /> </bean> </list> </property> <!--可选,QuartzScheduler 启动时更新己存在的Job,这样就不用每次修改targetObject后删除qrtz_job_details表对应记录了 --> <property name="overwriteExistingJobs" value="true"/> <!-- 属性 --> <property name="quartzProperties"> <props> <!-- 集群要求必须使用持久化存储 --> <prop key="org.quartz.jobStore.class">org.quartz.impl.jdbcjobstore.JobStoreCMT</prop> <prop key="org.quartz.scheduler.instanceName">EventScheduler</prop> <!-- 每个集群节点要有独立的instanceId --> <prop key="org.quartz.scheduler.instanceId">AUTO</prop> <!-- Configure ThreadPool --> <prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop> <prop key="org.quartz.threadPool.threadCount">50</prop> <prop key="org.quartz.threadPool.threadPriority">5</prop> <prop key="org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread">true</prop> <!-- Configure JobStore --> <prop key="org.quartz.jobStore.misfireThreshold">60000</prop> <prop key="org.quartz.jobStore.driverDelegateClass">org.quartz.impl.jdbcjobstore.StdJDBCDelegate</prop> <prop key="org.quartz.jobStore.tablePrefix">qrtz_</prop> <prop key="org.quartz.jobStore.maxMisfiresToHandleAtATime">10</prop> <!-- 开启集群 --> <prop key="org.quartz.jobStore.isClustered">true</prop> <prop key="org.quartz.jobStore.clusterCheckinInterval">${job.clusterCheckinInterval}</prop> <prop key="org.quartz.jobStore.dontSetAutoCommitFalse">true</prop> <prop key="org.quartz.jobStore.txIsolationLevelSerializable">false</prop> <prop key="org.quartz.jobStore.dataSource">myDS</prop> <prop key="org.quartz.jobStore.nonManagedTXDataSource">myDS</prop> <prop key="org.quartz.jobStore.useProperties">false</prop> <!-- Configure Datasources --> <prop key="org.quartz.dataSource.myDS.driver">${db.driver}</prop> <prop key="org.quartz.dataSource.myDS.URL">${db.url}</prop> <prop key="org.quartz.dataSource.myDS.user">${db.username}</prop> <prop key="org.quartz.dataSource.myDS.password">${db.password}</prop> <prop key="org.quartz.dataSource.myDS.maxConnections">${db.maxConnections}</prop> <prop key="org.quartz.dataSource.myDS.validationQuery">select 0 from qrtz_locks</prop> </props> </property> <property name="applicationContextSchedulerContextKey" value="applicationContext" /> </bean>
4.运行截图:
猜你喜欢
- spring集成quartz的集群配置实例
- quartz spring配置实例代码demo下载
- spring整合rmi代码实例
- Spring整合DWR实例
- Spring与Quartz集成配置实现简单定时任务调度
- Spring动态对Quartz定时任务的管理,实现动态加载,停止的配置实例代码
- spring整合java quartz实现动态定时任务的前台网页配置与管理
- spring整合dwr的入门学习代码实例
- spring项目整合ehcache和redis缓存实例
- spring整合apache activemq实现消息发送的三种方式代码配置实例
- Spring+JMS+ActiveMQ+Tomcat整合项目实例
- quartz demo实例集合
请下载代码后再发表评论
文件名:Quartz.zip,文件大小:4763.574K
下载
- /
- /Quartz
- /Quartz/.classpath
- /Quartz/.myeclipse
- /Quartz/.mymetadata
- /Quartz/.project
- /Quartz/.settings
- /Quartz/.settings/.jsdtscope
- /Quartz/.settings/org.eclipse.jdt.core.prefs
- /Quartz/.settings/org.eclipse.wst.common.component
- /Quartz/.settings/org.eclipse.wst.common.project.facet.core.xml
- /Quartz/src
- /Quartz/src/com
- /Quartz/src/com/quartz
- /Quartz/src/com/quartz/job
- /Quartz/src/com/quartz
- /Quartz/src/com
- /Quartz
相关代码
- java quartz定时任务示例
- quartz demo实例集合
- 证 java swing编写Quartz表达式生成器CronExpBuilder
- spring集成quartz的集群配置实例
- 原 分享通过spring注解实现的quartz job
- quartz spring配置实例代码demo下载
- java quartz任务调度quartz.properties配置文件源码分享
- 原 Spring与Quartz集成配置实现简单定时任务调度
- 证 Spring动态对Quartz定时任务的管理,实现动态加载,停止的配置实例代码
- 原 ssm整合quartz定时任务实现动态增删改查,暂停任务,恢复任务
- 证 spring boot+spring data jpa+h2实现quartz任务管理系统
- 原精 spring整合java quartz实现动态定时任务的前台网页配置与管理
最近下载
annazhang LV29
2022年7月17日
kong.yee LV40
2020年6月29日
944826941 LV1
2020年2月29日
a743110094 LV7
2019年11月29日
153549111 LV1
2019年7月17日
2293778908 LV12
2019年5月16日
zbshhgz LV1
2019年3月11日
20162016 LV6
2019年3月8日
zq671366 LV14
2019年2月26日
afeng992211 LV14
2018年11月30日
最近浏览
小松哥11 LV2
7月2日
maojianyun LV30
2022年8月9日
annazhang LV29
2022年7月17日
cz8857216 LV4
2022年5月9日
1145304128 LV12
2022年4月1日
npc也有忧伤 LV3
2022年3月20日
1234mama LV19
2022年3月14日
yhyyy1234 LV1
2022年1月6日
阿风啦 LV14
2021年9月29日
lcj166 LV5
2021年8月22日