spring 制作quartz定时器

背景:之前的图片搜索项目中需要用到定时任务创建图片库索引,查看网上资料后,决定用spring+quartz来做。

首先:在Spring配置文件中增加本业务类(略掉,准备用原有的action)

    <!-- 图片搜索的Action -->
    <bean id="searchImg" class="com.eelly.imagesearch.action.ImgSearchAction">
        <property name="imgSearch">
            <ref bean="ImgSearchService" />
        </property>
    </bean>
第二步:定义任务(在Spring配置文件中配置代理类MethodInvokingJobDetailFactoryBean,定义任务的详细信息)
<bean id="createIndexTask" class= "org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">   
        <property name="targetObject" ref="searchImg" />   
        <property name="targetMethod" value="createIndex" />   
        <property name="concurrent" value="false" />
    </bean> 
备注:这个配置告诉Spring,我们的任务是执行id为businessReport的bean中的perform函数。其中参数concurrent告诉Spring,不要并发运行这个任务。

第三步:配置一个触发器(在Spring配置文件中配置触发器类CronTriggerBean)

<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">   
        <property name="jobDetail" ref="createIndexTask" />   
        <property name="cronExpression" value="0 0 1 * * ?" />   
    </bean>
备注:触发器将告诉Quartz两件事:在何时触发任务、触发哪个任务。其中属性参数cronExpression为调度时间,格式和unix上的 crontab类似(依次对应秒,分,时,日,月,周,其中问号表示忽略该位置(星期)上的值);属性参数jobDetail指向具体的任务bean:reportTask 。如果你有多个任务,每个任务的触发时间都不一样,则你可以在此配置多个不同的触发器。

第四步:配置一个调度器(在Spring配置文件中配置调度器类SchedulerFactoryBean)

<bean class= "org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">   
            <list>   
                <ref bean="cronTrigger" />
            </list>   
        </property>   
    </bean>
备注:该调度器用于管理触发器(只有在调度器中列表出现的触发器才被Quartz系统调度执行。至此,所有的配置已完成

第五步:检查jar包(spring-context-support.jar,commons-collections-3.1.jar,jta.jar另外重点需要一个合适的quartz的jar包

参照资料:http://blog.csdn.net/xxtjp/article/details/7016517   (配置流程)

                    http://blog.sina.com.cn/s/blog_6236e37f010143mz.html  (检查jar包)

            http://blog.csdn.net/wanlixingzhe/article/details/7258393  (检查jar包)

       http://kevin19900306.iteye.com/blog/1397744  (判断合适的quartz合适的jar包)

      http://jarfiles.pandaidea.com/quartz.html   (quartz的jar下载地址)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值