您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: