`

spring+quartz实现定时任务支持集群

    博客分类:
  • java
 
阅读更多

最近项目要做集群,然后找了下资料发现quartz本身就支持集群,但是需要引入一些表,这里废话就少说了,这里就直接上代码吧,也提供了对应的代码下载https://github.com/zqh1989/quartz

1,首先下载quartz的jar包,找到docs的dbTables目录下边的对应的sql文件引入项目中

如图:我这边用的是mysql



 2,quartz.properties配置

#==============================================================    
#Configure Main Scheduler Properties    
#==============================================================     
org.quartz.scheduler.instanceName = quartzScheduler  
org.quartz.scheduler.instanceId = AUTO  

#==============================================================    
#Configure ThreadPool    
#==============================================================   
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool  
org.quartz.threadPool.threadCount = 10  
org.quartz.threadPool.threadPriority = 5  
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true 

#==============================================================    
#Configure JobStore    
#==============================================================   
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX  
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate  
org.quartz.jobStore.tablePrefix = QRTZ_  
org.quartz.jobStore.isClustered = true  
org.quartz.jobStore.clusterCheckinInterval = 20000    
org.quartz.jobStore.dataSource = myDS  
   
#==============================================================    
#Configure DataSource     \uFF08\u6B64\u5904\u586B\u4F60\u81EA\u5DF1\u7684\u6570\u636E\u5E93\u8FDE\u63A5\u4FE1\u606F\uFF09
#==============================================================   
org.quartz.dataSource.myDS.driver = com.mysql.jdbc.Driver  
org.quartz.dataSource.myDS.URL = jdbc\:mysql\://192.168.9.223:3306/cloud_live_course?createDatabaseIfNotExist\=true&characterEncoding\=utf-8  
org.quartz.dataSource.myDS.user = root  
org.quartz.dataSource.myDS.password = ablejava  
org.quartz.dataSource.myDS.maxConnections =30  

 3,spring-time.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
	<!-- 调度器lazy-init='false'那么容器启动就会执行调度程序 -->
	<bean id = "startQuertz" lazy-init="false" autowire="no"
		class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="configLocation" value="classpath:quartz.properties" />
		<property name ="triggers">
			<list>
				<ref bean ="doTime" />
			</list>
		</property>
		<!-- 允许在Quartz上下文中使用Spring实例工厂 -->
		<property name = "applicationContextSchedulerContextKey" value="applicationContext" />
	</bean>

	<!-- 触发器 -->
	<bean id = "doTime"
		class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
		<property name = "jobDetail" ref="jobtask"></property>
		<!-- cron表达式 -->
		<property name = "cronExpression"
			value="10,15,20,25,30,35,40,45,50,55 * * * * ?">
		</property>
	</bean>
	<!-- 任务 -->
    <bean id="jobtask" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        <property name="jobClass">
             <value>zhang.quartz.MyDetailQuartzJobBean</value>
        </property>
        <property name="jobDataAsMap">
            <map>
                 <entry key="targetObject" value="synUsersJob"/>
                 <entry key="targetMethod" value="execute"/>
            </map>
        </property>
    </bean>
	
	<!-- 要调用的工作类 -->
	<bean id = "synUsersJob" class="zhang.quartz.core.SynUsersJob"></bean>
</beans>   

 4,web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee"
	xsi:schemaLocation="
            http://java.sun.com/xml/ns/javaee
            http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	version="3.0">
	<display-name>liveCourse</display-name>

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
 			classpath:spring/spring-config.xml
 			classpath:spring/spring-time.xml
		</param-value>
	</context-param>
	
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!--转码 -->
	<filter>
		<filter-name>SpringEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>UTF-8</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>SpringEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

	

	
	

	<!-- session超时定义,单位为分钟 -->
	<session-config>
		<session-timeout>60</session-timeout>
	</session-config>

</web-app>

 

最后看执行效果,我这边启动了两个tomcat只有一个会起作用,然后停掉其中一个另一个马上就起来了

 



  

 

  • 大小: 61.5 KB
  • 大小: 31.5 KB
  • 大小: 37.8 KB
分享到:
评论

相关推荐

    spring+quartz定时集群支持

    总结起来,"Spring+Quartz定时集群支持"涉及到的知识点主要包括:Spring与Quartz的集成、Quartz的集群配置、`MethodInvokingJobDetailFactoryBean`的使用、数据库表的设计以及通过IHS等手段实现的任务调度。...

    11-Spring+Quartz定时任务最简集群版1

    【Spring+Quartz定时任务最简集群版1】是一个基于Spring和Quartz的定时任务解决方案,用于在分布式环境中实现任务的自动调度。本项目作为Dubbo工程的一部分,它依赖于Dubbo的一些公共组件,同时也提供了将定时任务...

    Spring + quartz 定时任务修改定时时间不重启服务

    Spring + quartz 定时任务修改定时时间不重启服务

    spring + quartz 集群配置

    java + quartz实现定时任务,实现集群配置,在集群环境下多节点运行定时Quartz定任务,就会存在重复处理任务的现象,为解决这一问题,下面我将介绍使用 Quartz 的 TASK ( 12 张表)实例化到数据库,基于数据库自动...

    SpringBoot 整合Quartz(集群)实现定时任务调度

    SpringBoot整合Quartz实现定时任务调度是企业级应用中常见的需求,主要用于自动化执行某些周期性的任务,例如数据备份、报表生成、系统维护等。Quartz是一个功能强大的开源作业调度框架,能够灵活地定义任务和调度...

    定时框架spring+quartz

    此外,由于Quartz支持集群,因此在多服务器环境下,可以实现任务的高可用性和负载均衡。 在ssh2_quartz这个文件中,可能包含了一个示例项目,演示了如何在SSH(Struts2、Spring、Hibernate)架构下整合Quartz进行...

    Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查

    Quartz支持从数据库存储作业和触发器,这样可以方便地进行任务的持久化和集群环境下的任务同步。 1. **Spring与Quartz的集成**:Spring提供了与Quartz的无缝集成,通过`Spring-Job`和`Spring-Trigger`接口,我们...

    Spring+Quartz 集群

    总之,Spring+Quartz的集成可以实现灵活且可靠的定时任务管理,通过集群配置,我们可以构建一个能够承受高并发、容错性强的定时任务系统。在实践中,我们不仅要关注技术细节,还要考虑到系统的扩展性、可维护性和...

    quartz整合springbatch动态集群定时实现mysql参考

    在这个“quartz_springbatch_dynamic”项目中,我们将看到如何将这两个强大的工具结合起来,以实现动态集群环境中的定时任务执行,并使用MySQL作为数据存储。 Quartz是一个开源的作业调度框架,允许开发者创建、...

    spring+quartz定时任务

    Spring与Quartz的集成主要基于Spring的`TaskExecution`和`TaskScheduling`模块,它允许我们以声明式的方式配置定时任务,同时也支持编程式的任务调度。以下将详细介绍如何利用Spring和Quartz实现多任务的定时功能。 ...

    spring + Quartz 定时任务

    Quartz支持CRON表达式,可以创建复杂的调度规则,同时支持集群环境下的任务调度。`quartz-all-1.6.0.jar`包含了Quartz的核心功能。 **Spring与Quartz集成** Spring与Quartz的集成主要通过`org.springframework....

    Spring+Quartz定时调度

    **Spring+Quartz定时调度详解** 在Java世界中,实现定时任务调度是非常常见的需求,Spring框架结合Quartz库提供了一种高效且灵活的解决方案。本文将深入探讨Spring与Quartz的整合,以及如何利用它们来创建和管理...

    Spring+Quartz集群部署案例

    最近项目中使用了spring+Quartz定时任务、但是项目最近要集群部署、多个APP下如何利用Quartz 协调处理任务。 大家可以思考一下、现在有 A、B、C三个应用同时作为集群服务器对外统一提供服务、每个应用下各有一个...

    Spring+Quartz配置定时任务实现代码

    Spring+Quartz配置定时任务实现代码 Spring和Quartz是两个非常流行的开源框架,Spring是一个基于Java的企业级应用程序开发框架,而Quartz是一个功能强大且灵活的开源调度框架。两者相结合,可以实现灵活可配置的...

    spring3+quartz1.6.4 集群示例

    本示例"spring3+quartz1.6.4 集群示例"是将两者结合,以实现一个能够支持集群的定时任务管理解决方案。 1. **Spring 3.x 框架** Spring 3.x 是Spring框架的一个版本,它引入了许多新特性,包括对Java 5和6的支持,...

    spring 集成quartz 用数据库实现quartz的集群

    【Spring集成Quartz定时任务与数据库实现集群详解】 在企业级应用中,定时任务的管理是必不可少的一部分,Spring框架提供了与Quartz的集成,使得我们可以方便地创建和管理定时任务。Quartz是一款强大的、开放源代码...

    spring boot + quartz 动态管理 分布式

    Spring Boot简化了Spring应用的初始搭建以及开发过程,提供了开箱即用的功能,而Quartz则是一个强大的任务调度库,常用于实现定时任务。 Spring Boot是一个基于Spring框架的快速开发工具,它通过预配置的starter ...

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

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

    spring+quartz动态设置定时时间

    Spring和Quartz是两个广泛使用的Java框架,它们可以协同工作,实现复杂和灵活的定时任务管理。本篇文章将深入探讨如何在Spring与Quartz结合的环境中动态设置定时时间。 首先,Spring框架提供了方便的依赖注入和AOP...

    Spring+quartz相关jar包.rar

    Quartz 还具有集群功能,可以确保在多服务器环境中任务的可靠执行。 当 Spring 与 Quartz 结合使用时,Spring 可以通过其强大的容器管理和配置能力,将 Quartz 集成到应用程序中。例如,Spring 提供了 `org.spring...

Global site tag (gtag.js) - Google Analytics