[转]ssh中如何实现定时任务(spring对quartz的支持)

原文地址:http://blog.csdn.net/qq_18675693/article/details/50413889

实现定时任务:quartz
spring中对quartz进行了封装,使得我们可以直接在配置文件中配置bean就可以使用quartz的定时任务
首先在spring中使用quartz需要引入的包:
org.springframework.context.support-3.0.2.RELEASE.jar(spring中)
quartz-1.8.6.jar(此为外包,独立下载,spring只是在上面jar包中对quartz做了bean封装,使用可以通过配置spring文件的方式来控制定时任务)

这里写图片描述

附:文本样式

  <!-- 指定任务的类,方法,是否可同步(即上次为执行完毕的方法是否可以继续执行,true,允许) -->
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        <property name="targetObject" ref="complainService"></property>
        <property name="targetMethod" value="autoDealUndealComplains"></property>
        <property name="concurrent" value="false"></property>
    </bean>

    <!-- 设置任务的启动时机(任务触发器) -->
    <bean id="complainCronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
        <property name="jobDetail" ref="jobDetail"></property>
        <!-- 表达式 (秒 分 时 日 月 周 年)日与周不可以同时出现 ,年可省略 表示:每月的最后一天的23:59:59触发任务 -->
        <property name="cronExpression" value="0 * * L * ?"></property>
    </bean>

    <!-- 触发器的调度工厂,可以调度多个任务触发器 -->
    <bean id="complainScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <property name="triggers">
            <list>
                <ref bean="complainCronTrigger"/>
            </list>
        </property>
    </bean>

文中的id为complainService的bean,就是一个普通的java类
cron表达式用法介绍:
格式:
秒 分 时 日 月 周 年
空格分开
日和周不能同时出现,一个出现另一个用?代替
年可以省略(不用的情况下)
通配符 * / - L W #
*:可以防止与任意位置,表示任意
/:表示切分 秒位置:2/5,表示2秒后每隔5秒
-:指定某一范围a-b
L:日 的位置,表示月的最后一天
W:匹配最近的工作日。左右两侧最近的日期
如:15W(日 位置),配置离15号最近的工作日,如下结果为16号
14 15 16 17
周六 周日 周一 周二
LW:表示当前月最后一个工作日
#:用于“周”6#3—->该月第3个周五(ps:6代表周五,因为老外的星期是从sun开始,索引1)

posted @ 2017-12-06 10:55  dirgo  阅读(1553)  评论(0编辑  收藏  举报