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

    1.结构

    2.执行业务的代码:

      

    package com.bst.express;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class PrintJob {
    
        /**
         * 定时任务一
         */
        public void run() {
            Date date=new Date();
            SimpleDateFormat df=new SimpleDateFormat("HH:mm:ss");
            System.out.println("执行targetObject中的targetMethod方法,开始。。。。。。。。。。。。。"+df.format(date));
        }
        
        /**
         * 定时任务二
         */
        public void excute()
        {
            Date date=new Date();
            SimpleDateFormat df=new SimpleDateFormat("HH:mm:ss");
            System.out.println(">>>>>执行任务二<<<<<<<<"+df.format(date));
        }
        
        public static void main(String[] args) {
                System.out.println("----begin---");
                ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring.xml");
          }
    
    }

    3.配置spring的文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd           
                            http://www.springframework.org/schema/context  
                            http://www.springframework.org/schema/context/spring-context-3.2.xsd">
        <!--实例化执行定时任务的类  -->
        <bean id="task" class="com.bst.express.PrintJob"/>
        <bean id="job"
            class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject" ref="task" />
            <property name="targetMethod" value="run" />
        </bean>
        <bean id="job1"
            class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
            <property name="targetObject" ref="task" />
            <property name="targetMethod" value="excute" />
        </bean>
        <!--定义触发的时机:方法一:指定时间执行定时任务  -->
        <bean id="cronTrigger"
            class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
            <property name="jobDetail" ref="job" />
            <property name="cronExpression" value="0/4 * * * * ?" />
        </bean>
        <!--定义触发的时机:方法二:每隔一段时间执行 -->
        <bean id="initSyncJob"
            class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
            <property name="jobDetail" ref="job1" />
            <property name="repeatInterval">
                <value>4000</value>
            </property>
        </bean>
        <!--将触发规则加入到调度任务中去  -->
        <bean id="scheduler"
            class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
            <property name="triggers">
                <list>
                    <ref bean="cronTrigger" />
                    <ref bean="initSyncJob" />
                </list>
            </property>
            <property name="autoStartup" value="true" />
        </bean>
    
    </beans>

    3.pom文件

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.bst</groupId>
        <artifactId>express</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>express</name>
        <url>http://maven.apache.org</url>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>
            <!--必须加不然会报错  -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.quartz-scheduler</groupId>
                <artifactId>quartz</artifactId>
                <version>2.2.1</version>
            </dependency>
            
        </dependencies>
    </project>

    4.测试的时候运行前面的main函数即可

     5.测试结果

  • 相关阅读:
    【全网最优方法】JAVA初学:错误: 找不到或无法加载主类HelloWorld
    Anaconda官网下载太慢/出错,以及Anaconda下载包又慢又出错的总体方法,应该如何快速下载,使用上海科技大学的开源镜像站即可
    认识git的简单命令
    CSS、Bulma介绍
    IDEA问题java: -source 1.6 中不支持diamond、 lambda 表达式
    认识HTML语言(CodePen)
    【Java笔试】对数据库中的分解是否为无损连接和是否保持函数依赖的判定-由牛客网试题引申-保姆式教学
    【大唐杯经验2019】大唐杯全国移动通信大赛 国赛二等奖经验分享
    【Java笔试】OYO校招Java工程师|牛客平台,算法:字符串翻转。附选择题解析
    【Java面试宝典】正则表达式
  • 原文地址:https://www.cnblogs.com/anlegou/p/8856678.html
Copyright © 2011-2022 走看看