我的项目中使用了spring集成quazt来实现任务调度任务的功能,现在有这样一个需求,我需要通过后台任务每隔半小时统计一次业务数据,然后放到缓存中,前台页面通过实时刷新页面来从缓存中获取统计的数据,可能,当我们系统刚上线的时候调度任务还没有执行,要等到指定的时间点才执行,我现要想让系统等到spring容器加载完成后就自动执行一次,请问有什么办法吗?
Java代码 收藏代码
<bean id="refreshOldAccountTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"
autowire="no">
<property name="jobDetail">
<ref bean="refreshOldAccountStaticTask" />
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 设置的定时器,每30分钟执行一次 -->
<value>* 10/30 * * * ? * </value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"
lazy-init="false" autowire="no">
<property name="triggers">
<list>
<ref bean="refreshOldAccountTrigger"/>
</list>
</property>
<property name="autoStartup" value="true"/>
</bean>
用SimpleTriggerBean即可
<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="myJob" />
<property name="startDelay" value="开始时的延迟 如0" />
<property name="repeatInterval" value="重复执行间隔" />
</bean>
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。