zoukankan      html  css  js  c++  java
  • Java Spring quartz 定时任务

    Java Spring quartz 定时任务

    一、技术实现

    1.1 配置 spring 环境

    spring 配置 略

    定时任务相关 jar 包

        <!-- quartz -->
        <dependency>
          <groupId>org.quartz-scheduler</groupId>
          <artifactId>quartz</artifactId>
          <version>2.2.1</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>${org.springframework.version}</version>
        </dependency>
    

    1.2 applicationContext 配置

        <!--启用spring的一些annotation -->
        <context:annotation-config/>
    
        <!--定时任务1 配置任务bean类 -->
        <bean name="job1" class="com.timedtask.TimedTask"/>
        <bean id="SpringQtzJobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject">
                <ref bean="job1"/>
            </property>
            <property name="targetMethod">
                <!-- 要执行的方法名称 -->
                <value>task1</value>
            </property>
        </bean>
        <!--调度触发器-->
        <bean id="CronTriggerBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <property name="jobDetail" ref="SpringQtzJobMethod"></property>
            <property name="cronExpression" value="0/5 * * * * ?"></property>
        </bean>
    
        <!--定时任务2-->
        <bean id="SpringQtzJobMethod2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject">
                <ref bean="job1"/>
    
            </property>
            <property name="targetMethod">
                <!-- 要执行的方法名称 -->
                <value>task2</value>
            </property>
        </bean>
        <!--调度触发器-->
        <bean id="CronTriggerBean2" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <property name="jobDetail" ref="SpringQtzJobMethod2"></property>
            <property name="cronExpression" value="0/5 * * * * ?"></property>
        </bean>
        <!--调度工厂-->
        <bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
                <list>
                    <ref bean="CronTriggerBean"/>
                    <ref bean="CronTriggerBean2"/>
                </list>
            </property>
        </bean>
    

    1.3 定时任务类

    /**
     * 定时任务
     *
     * @author zt1994 2019/8/22 21:55
     */
    public class TimedTask {
    
        /**
         * 定时任务1
         */
        public void task1() {
            System.out.println("task1");
        }
    
    
        /**
         * 定时任务2
         */
        public void task2() {
            System.out.println("task2");
        }
    }
    

    二、测试定时任务

    启动项目,测试结果

    task1
    task2
    task1
    task2
    task1
    task2
    task1
    task2
    task1
    task2
    
  • 相关阅读:
    linux 解压tgz 文件指令
    shell 脚本没有执行权限 报错 bash: ./myshell.sh: Permission denied
    linux 启动solr 报错 Your Max Processes Limit is currently 31202. It should be set to 65000 to avoid operational disruption.
    远程查询批量导入数据
    修改 MZTreeView 赋权节点父节点选中子节点自动选中的问题
    关于乱码的问题解决记录
    我的网站优化之路
    对设计及重构的一点反思
    我的五年岁月
    奔三的路上
  • 原文地址:https://www.cnblogs.com/zt19994/p/14327401.html
Copyright © 2011-2022 走看看