zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    (转)iOS-Runtime知识点整理
    iOS开发--SQLite重要框架FMDB的使用
    iOS开发--数据库管理CoreData的使用
    iOS超全开源框架、项目和学习资料汇总--数据库、缓存处理、图像浏览、摄像照相视频音频篇
    【导航条滚动透明】一个分类搞定
    成熟的程序员应该掌握的4个知识点
    iOS开发之浅谈MVVM的架构设计与团队协作
    Leetcode-One Edit Distance
    Leetcode-Read N Characters Given Read4 II
    Leetcode-Read N Characters Given Read4
  • 原文地址:https://www.cnblogs.com/poterliu/p/11770831.html
Copyright © 2011-2022 走看看