• Quartz 的使用


    1. Quartz 入门案例

    1.1 Quartz 相关jar包

    • quartz-2.2.3.jar
    • quartz-jobs-2.2.3.jar

    1.2 创建任务类

    // 自定义任务类
    public class MyJob{
    
        public void fun(){
            System.out.println("自定义任务执行了...."+
                           new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        }
    }
    

    1.3 在spring配置文件中配置任务类

    <bean id="myJob" class="cn.itcast.quartz.MyJob"></bean>
    

    1.4 在spring配置文件中配置 JobDetail

    <!-- 配置 jobDetail -->
    <bean id="jobDetail"
                class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    
        <!-- 注入目标对象 -->
        <property name="targetObject" ref="myJob"></property>
    
        <!-- 注入目标对象中的方法 -->
        <property name="targetMethod" value="fun"></property>
    </bean>
    

    1.5 在spring 配置文件中配置触发器

    <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
        <!-- 注入任务详情对象(JobDetail) -->
        <property name="jobDetail" ref="jobDetail"></property>
    
        <!-- 注入cron表达式,通过这个表达式,指定触发的时间点 -->
        <proeprty name="cronExpression">
            <!-- 每5秒执行一次 -->
            <value>0/5 * * * * ?</value>
        </property>
    </bean>
    

    1.6 在spring配置文件中,配置scheduler

    <!-- 配置调度工厂 -->
    <bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        <!-- 注入触发器 -->
        <property name="triggers">
            <list>
                <ref bean="myTrigger"/>
            </list>
        </property>
    </bean>
    

    1.7 加载spring配置文件,创建spring工厂,测试quartz程序

    public class App{
        public static void main(String[] args){
            new ClassPathXmlApplicationContext("applicationContext.xml");
        }
    }
    

    2. 核心概念

    1. scheduler 是一个计划调度器容器,容器里面可以盛放众多的JobDetail和trigger,当容器启动后,里面每个JobDetail
      都会根据trigger按部就班自动去执行;
    2. JobDetail 是一个可执行的工作,它本身可能是有状态的;
    3. Trigger 触发器,代表一个调度参数的配置,决定什么时候去调用;
    4. 当JobDetail和Trigger在scheduler容器上注册后,形成了装配好的作业(JobDetail和Trigger所组成的一对儿),就可
      以伴随容器启动儿调度执行了;
    5. scheduler 是个容器,容器中有一个线程池,用来并行调度执行每个作业,这样,可以提高容器效率;

    3. Cron 表达式

    3.1 Cron 表达式支持的七个域

  • 相关阅读:
    马士兵_聊天系统_知识储备库
    最近一些情况
    JAVA坦克大战项目练习日4
    JAVA坦克大战项目练习日3
    JAVA坦克大战项目练习日2
    JAVA坦克大战项目练习日1
    课后实战String的一些细节
    Java从入门到精通之数组篇
    58_自定义标签打包以及使用自定义标签教程
    javaWeb安全篇(1)——防盗链技术的实现
  • 原文地址:https://www.cnblogs.com/linkworld/p/7888984.html
Copyright © 2020-2023  润新知