我用spring的定时器隔半个小时去扒数据,但是我想web启动就立即执行,然后后隔半个小时执行,不知道怎么配
展开全部
一起动的时候就调用,这个你可以写个监听,第一次调用在监听里调用。
以后每隔半小时调用可以使用定时器。
我们定时器是用的quartz.先引入这个的Jar包。
在application-context.xml中,进行相关的配置。
定义一个任务,用来调用方法执行指定的任务。
<bean id="hourTask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="方法所在的类的bean的ID"/>
<property name="targetMethod" value="指定的方法"/>
<property name="concurrent" value="false"/>
</bean>
然后定义一个表达式,定义什么时候执行调用指定的任务。
<bean id="cronReportTriggerHour" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="hourTask"/>
<property name="cronExpression" value="0 0/30 0 * * ?"/>
</bean>
最后调用上面的定时器
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronReportTriggerHour"/>
</list>
</property>
</bean>
要先在相关的配置文件中配置类的bean,targetObject指向这个类,targetMethod指向执行任务的方法。
希望可以帮到你。
以后每隔半小时调用可以使用定时器。
我们定时器是用的quartz.先引入这个的Jar包。
在application-context.xml中,进行相关的配置。
定义一个任务,用来调用方法执行指定的任务。
<bean id="hourTask"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="方法所在的类的bean的ID"/>
<property name="targetMethod" value="指定的方法"/>
<property name="concurrent" value="false"/>
</bean>
然后定义一个表达式,定义什么时候执行调用指定的任务。
<bean id="cronReportTriggerHour" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="hourTask"/>
<property name="cronExpression" value="0 0/30 0 * * ?"/>
</bean>
最后调用上面的定时器
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronReportTriggerHour"/>
</list>
</property>
</bean>
要先在相关的配置文件中配置类的bean,targetObject指向这个类,targetMethod指向执行任务的方法。
希望可以帮到你。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询