quartz 在spring 中配置服务 定时执行和循环执行事件
2009-12-17 10:19
381 查看
quartz 可以在spring中配置 定时执行和循环执行事件、
操作数据库需要用到spring事务和接口,
<!--配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!--定义事务代理模板 -->
<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 配置服务 定时执行 ********************************************************** begin -->
<!--无数据库操作定时的类 (注入格式)
<bean id="getWeather" class="com.linli.domain.service.impl.WeatherService">
</bean>
-->
<!-- 有数据库操作定时类(注入格式) -->
<bean id="getHTML" parent="txProxyTemplate">
<property name="target">
<bean class="com.shenzhan.pro.util.GetStaticHTML"> <!-- 接口实现的类 -->
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
</property>
</bean>
<!-- 配置调用哪些注入和方法 -->
<bean id="methodInvokingJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- <property name="targetObject" ref="timerManager" /> 这个是有数据库的方法-->
<property name="targetObject" ref="getHTML" /><!-- 类的ID -->
<property name="targetMethod" value="getstatichtml" /> <!-- 要执行类里面的哪个方法 -->
<property name="concurrent" value="false" />
</bean>
<!-- 简单定时,一般为系统运行后多少时间和每间隔多长时间执行(简单的定时) -->
<bean id="simpleTriggerqili"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<!-- 配置的需要定时的类 -->
<property name="jobDetail" ref="methodInvokingJobDetail" />
<!-- 首次执行等待时间1s -->
<property name="startDelay" value="120000" /> <!-- 2分钟后执行 -->
<!-- 每隔多久执行一次60s -->
<property name="repeatInterval" value="3000" /> <!-- 4小时执行一次天气更新 -->
<!-- <property name="repeatInterval" value="14400000" /> 10分钟 测试 执行一次天气更新 -->
</bean>
<!-- 自定义定时,可以精确到某年某月某天某时某分某秒(精确定时器)
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="methodInvokingJobDetail" />
<property name="cronExpression" value="0 38,40 * * * ?" />
</bean>
-->
<!-- lazy-init="false" 服务器启动自动执行该定时器,不需要再另写Servlet来启动 -->
<bean id="quartzCronBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref bean="simpleTriggerqili"/> <!-- 定时器 -->
<!-- <ref bean="cronTrigger" /> 使用精确定时器 -->
</list>
</property>
</bean>
<!-- 配置服务 定时执行 *************************************************************** end-->
例子下载地址: http://download.csdn.net/source/1910076
操作数据库需要用到spring事务和接口,
<!--配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!--定义事务代理模板 -->
<bean id="txProxyTemplate" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>
</props>
</property>
</bean>
<!-- 配置服务 定时执行 ********************************************************** begin -->
<!--无数据库操作定时的类 (注入格式)
<bean id="getWeather" class="com.linli.domain.service.impl.WeatherService">
</bean>
-->
<!-- 有数据库操作定时类(注入格式) -->
<bean id="getHTML" parent="txProxyTemplate">
<property name="target">
<bean class="com.shenzhan.pro.util.GetStaticHTML"> <!-- 接口实现的类 -->
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
</property>
</bean>
<!-- 配置调用哪些注入和方法 -->
<bean id="methodInvokingJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- <property name="targetObject" ref="timerManager" /> 这个是有数据库的方法-->
<property name="targetObject" ref="getHTML" /><!-- 类的ID -->
<property name="targetMethod" value="getstatichtml" /> <!-- 要执行类里面的哪个方法 -->
<property name="concurrent" value="false" />
</bean>
<!-- 简单定时,一般为系统运行后多少时间和每间隔多长时间执行(简单的定时) -->
<bean id="simpleTriggerqili"
class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<!-- 配置的需要定时的类 -->
<property name="jobDetail" ref="methodInvokingJobDetail" />
<!-- 首次执行等待时间1s -->
<property name="startDelay" value="120000" /> <!-- 2分钟后执行 -->
<!-- 每隔多久执行一次60s -->
<property name="repeatInterval" value="3000" /> <!-- 4小时执行一次天气更新 -->
<!-- <property name="repeatInterval" value="14400000" /> 10分钟 测试 执行一次天气更新 -->
</bean>
<!-- 自定义定时,可以精确到某年某月某天某时某分某秒(精确定时器)
<bean id="cronTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="methodInvokingJobDetail" />
<property name="cronExpression" value="0 38,40 * * * ?" />
</bean>
-->
<!-- lazy-init="false" 服务器启动自动执行该定时器,不需要再另写Servlet来启动 -->
<bean id="quartzCronBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
<property name="triggers">
<list>
<ref bean="simpleTriggerqili"/> <!-- 定时器 -->
<!-- <ref bean="cronTrigger" /> 使用精确定时器 -->
</list>
</property>
</bean>
<!-- 配置服务 定时执行 *************************************************************** end-->
例子下载地址: http://download.csdn.net/source/1910076
相关文章推荐
- java web使用quartz执行定时任务 Spring配置quartz
- Spring+Quartz实现定时执行任务的配置
- springboot动态配置定时任务2种方式,整合Quartz多线程并发执行多个定时任务配置
- Spring 配置Quartz 定时任务调度服务
- spring定时执行程序(Spring中Quartz的配置 )
- spring配置quartz:定时去执行一个方法
- springboot动态配置定时任务2种方式,整合Quartz多线程并发执行多个定时任务配置
- java 定时器,固定某个时间执行(Spring+Quartz实现定时任务的配置方法)
- Spring+Quartz实现定时执行任务的配置
- SPring中quartz的配置(可以用实现邮件定时发送,任务定时执行,网站定时更新等)
- 用Quartz处理定时执行的任务(无Spring配置)
- 万物生长 项目jar包越少越好,不然会导致eclipse进入断点延迟高,很慢. Spring+quartz 实现定时任务job集群配置
- Spring+Quartz实现定时任务的配置方法
- Spring+Quartz实现定时任务的配置方法
- spring Quartz多个定时任务的配置
- Spring配置Quartz定时任务
- Spring+Quartz实现定时任务的配置方法
- 短信消息通知服务-spring定时计划任务quartz(二)
- spring quartz定时任务 配置
- Spring定时任务配置详解 quartz cronExpression