quartz 定时任务配置文件信息

quartz 定时任务配置文件有五大要素,配置好这五大要素,quartz 就能够正常的工作。

五大要素分别是:

1、工作的 bean:具体是哪个 Java 类来作为定时任务的文件入口,并配置该 bean 依赖的 bean

2、工作的 method:也可以称为 job,用上面指定的 Java 类中哪个方法作为定时任务的方法入口,依赖第一要素的 bean

3、工作的 trigger:直译为触发器,定时任务执行的时间、频次等信息,依赖第二要素的 method(或者 job)

4、工作线程的配置:可以称为 taskExecutor,配置线程池大小等信息

5、工作的调度:哪些 trigger 需要工作、使用哪个 taskExecutor,依赖第三要素(trigger)和第四要素(taskExecutor)

下面分别开始介绍每个要素的配置详情

先给出执行的 Java 类代码 QuartzSrvBean.java

/**
 * 定时任务调度
 */
public class QuartzSrvBean {
    private Logger logger = LoggerFactory.getLogger(QuartzSrvBean.class);

    private PreOrderMonitorService preOrderMonitorService;

    public void setPreOrderMonitorService(
            PreOrderMonitorService preOrderMonitorService) {
        this.preOrderMonitorService = preOrderMonitorService;
    }


    /**
     * 定时执行任务.....
     */
    public void exec() {
        //记录定时任务日志
        logger.info("xxxx定时任务开始执行-------------");
        boolean isComplete = preOrderMonitorService.execUpdateTask(null);
        logger.info("xxxx定时任务isComplete:" + isComplete);
    }

}

一、工作的 bean

<bean id="quartzSrvBean" class="com.xxx.yyy.common.QuartzSrvBean">
    <property name="preOrderMonitorService" ref="preOrderMonitorService"></property>
</bean>

二、工作的 method(也叫 job)

<!-- job的配置开始 -->
<bean id="myJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    <property name="targetObject" ref="quartzSrvBean"></property>
    <property name="targetMethod" value="exec"></property>
</bean>

三、工作的 trigger

<bean id="myJobTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail">
        <ref bean="myJobDetail" />
    </property>
    <property name="cronExpression">
        <value>0/30 * * * * ?</value>
    </property>
</bean>
cron 表达式生成可以用下面这个网页小工具:
http://cron.qqe2.com/

四、工作线程的配置(taskExecutor)

<!-- 配置线程的数量 -->
<bean id="executor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="1" />
    <property name="maxPoolSize" value="1" />
    <property name="queueCapacity" value="500" />
</bean>

五、工作的调度

<!-- 启动触发器 -->
<bean name="startQuertz" id="startQuertz" lazy-init="false" autowire="no"
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
        <list>
            <ref bean="myJobTrigger" />
        </list>
    </property>
    <property name="taskExecutor" ref="executor"></property>
</bean>

原文链接:

https://www.cnblogs.com/poterliu/p/11770831.html

原文地址:https://www.cnblogs.com/poterliu/p/11770831.html