• 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

  • 相关阅读:
    Altium Designer中各层的含义
    国外现在有哪些众筹网站呢?
    C# 代码 手工 配置 Log4Net 2种方法
    Windows 7 里进程管理器里面的各列是什么含义?主要是和内存有关的内存-专用工作集,内存-工作集,内存-提交大小???
    C# .Net 下 x86使用大内存的处理
    CV学习日志:CV开发之关联Gazebo/Webots/ROS2
    CV学习日志:CV开发之Windows10环境搭建
    CV学习日志:CV开发之Ubuntu2004和WLS2环境搭建
    ROS2学习日志:ROS2Cartgrapher使用与调试
    ROS2学习日志:QoS要点总结
  • 原文地址:https://www.cnblogs.com/poterliu/p/11770831.html
Copyright © 2020-2023  润新知