今天做项目性能测试,发现性能有点小问题,于是把开发代码拉下来仔细阅读一边,协助排查问题。顺便又将代码学习了一下,发现一段使用Spring来定时执行方法的代码,觉得不错,记录下来。比用crontab好一些,至少没有对系统的依赖。
<bean id="task"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><property name="targetObject">
<ref bean="xxxBean" />
</property>
<property name="targetMethod">
<value>xxxFunc</value>
</property>
</bean>
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="task" />
</property>
<property name="cronExpression">
<value>0 0/5 * * * ?</value>
</property>
<property name="timeZone" ref="timeZone" /> <!-- 需要定义一个时区 -->
</bean>
这样,Spring就可以替代Linux的crontab去定时执行方法了,放在代码中比放在系统中好很多,至少换一台服务器不会遗漏什么。