cron 定时任两种配置方式

Posted Always_July

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cron 定时任两种配置方式相关的知识,希望对你有一定的参考价值。

第一种:xml文件方式

    
<bean id="commonTimer" class="com.course.wx.timer.CommonTimer"></bean><!--定时任务Bean --> <bean name="startQuartz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="releaseQuestionTrigger" /> <ref bean="dealHistoryQuestionTrigger" /> </list> </property> </bean> <bean id="dealHistoryQuestionTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <property name="jobDetail"> <ref bean="dealHistoryQuestion" /> </property> <property name="cronExpression"> <value>0 23 15 * * ?</value> </property> </bean> <bean id="dealHistoryQuestion" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <property name="targetObject"> <ref bean="commonTimer" /> </property> <property name="targetMethod"> <value>dealHistoryQuestion</value> </property> </bean>

 

第二种:注解方式

xml配置

    <!-- Spring定时器注解开关-->  
    <task:annotation-driven />
    <!-- 此处对于定时时间的配置会被注解中的时间配置覆盖,因此,以注解配置为准 -->  
    <task:scheduled-tasks scheduler="myScheduler">  
        <task:scheduled ref="scheduledTaskManager" method="autoCardCalculate" cron="* */5 * * * *"/>  
    </task:scheduled-tasks>  
    <task:scheduler id="myScheduler" pool-size="10"/>

Java代码


@Component("scheduledTaskManager")
@Lazy(value=false)
public class ScheduledTaskManager { 
    
    public static final Integer RECOVER = 3;
    /** 
     * cron表达式:* * * * * *(共6位,使用空格隔开,具体如下) 
     * cron表达式:*(秒0-59) *(分钟0-59) *(小时0-23) *(日期1-31) *(月份1-12或是JAN-DEC) *(星期1-7或是SUN-SAT) 
     */  
    @Autowired
    ProcedureService procedureService;
  
    /** 
     * 定时卡点计算。每天凌晨 02:00 执行一次 
     * @throws AdqException 
     */  
    @Scheduled(cron = "* */5 * * * *")  
    public void autoCardCalculate() throws AdqException {  
        List<WorkOrder> suspendItems = procedureService.querySuspendItems();
        if (suspendItems != null && suspendItems.size() > 0) {
            for (WorkOrder order : suspendItems) {
                order.setStateId(RECOVER);
                order.setNotes("恢复执行");
                procedureService.updateState(order);
            }
        }
    }  
}  

spring 定时任务 scheduled Cron表达式 

http://blog.csdn.net/u011789653/article/details/51153536

以上是关于cron 定时任两种配置方式的主要内容,如果未能解决你的问题,请参考以下文章

SpringMVC自带Cron定时器Demo及常见问题

Springboot自带定时任务实现动态配置Cron参数

Springboot自带定时任务实现动态配置Cron参数

几种主流的分布式定时任务,你知道哪些?

spring实现动态定时任务

计划任务