首页 > 代码库 > spring中的任务
spring中的任务
最近需要在项目中使用定时任务,第一个是要每个小时运行一次,第二个是每月的1号运行一次。在网上找了下资料,用spring中的可以完成这个任务。
先写个业务处理类:
import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;public class JobYear extends QuartzJobBean{ @Override protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException { // TODO Auto-generated method stub System.out.println("正在测试job"); }}
需要在java中继承QuartzJobBean,当然你也可以不继承,然后用spring来指定运行的方法。
不过我个人还是觉得像这种java业务类,由于其业务的五花八门,一般也不会移植到其他项目。同时由于继承了QuartzJobBean,还带来了一个小小的好处,spring不需要通过反射来调用方法,理论上还是减少了一点点的系统资源。
还需要在spring中进行配置:
<bean id="jobDetailBean" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass" value="job.JobYear" /> </bean>
<!-- 此处是定时处理,按时间间隔进行-->
<bean id="simpleTriggerBean" class="org.springframework.scheduling.quartz.SimpleTriggerBean">
<property name="jobDetail" ref="jobDetailBean"/>
<property name="repeatInterval" value="5000"/>
<property name="startDelay" value="1000"/>
</bean>
<!-- 此处是按指定时间进行 下例:每月1日10:15分进行--> <bean id="cronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="jobDetailBean"/> <property name="cronExpression" value="0 15 10 1 * ?"/> </bean> <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="cronTriggerBean"/> <!-- 此处可以配置多个job--> </list> </property> </bean>
需要在系统lib中加入quartz-1.6.0.jar和log4j.jar
spring中的任务
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。