zoukankan      html  css  js  c++  java
  • 使用quartz实现定时器功能

    首先导入两个包
     1     <dependency>
     2         <groupId>org.quartz-scheduler</groupId>
     3         <artifactId>quartz</artifactId>
     4         <version>2.2.2</version>
     5     </dependency>
     6     <dependency>
     7         <groupId>org.quartz-scheduler</groupId>
     8         <artifactId>quartz-jobs</artifactId>
     9         <version>2.2.2</version>
    10     </dependency>
     
    然后写一个类用来当作定时器类,同时写一个方法为定时器执行的方法:
     1 package com.practice.prac.service.Impl;
     2  
     3 import org.springframework.stereotype.Component;
     4  
     5 @Component
     6 public class TestTime {
     7  
     8     public void print(){
     9         System.out.println("----------");
    10     }
    11 }
    这里是TestTime类和print方法
    在xml文件中定义以下bean:
     1 <!-- 以下为quartz实现定时器 -->
     2  
     3     <!-- 指明作为定时器的类 -->
     4     <bean id="TestTime" class="com.practice.prac.service.Impl.TestTime"></bean>
     5     <!-- 配置对应的信息 -->
     6     <bean id="TestTimeDetail"
     7         class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
     8         <!-- 指定任务类 -->
     9         <property name="targetObject" ref="TestTime" />
    10         <!-- 指定任务执行的方法 -->
    11         <property name="targetMethod" value="print" />
    12     </bean>
    13     <!-- 配置触发器 -->
    14     <bean id="TestTimeTrigger"
    15         class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    16         <property name="jobDetail" ref="TestTimeDetail" />
    17         <!-- 每5秒运行一次 -->
    18         <property name="cronExpression" value="0/5 * * * * ?" />
    19     </bean>
    20  
    21     <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    22         <property name="triggers">
    23             <list>
    24                 <!-- <ref bean="exampleJobTrigger" /> -->
    25                 <ref bean="TestTimeTrigger" />
    26             </list>
    27         </property>
    28     </bean>
    其中名字跟ref对应,指定任务类和指定任务执行的方法对应上就可以了。
    定时触发在触发器的cronExpression处定义,具体表达式含义在另一篇文章中。
  • 相关阅读:
    二分排序之三行代码
    最短路径—Floyd算法
    最小生成树 Kruskal算法
    最小生成树-Prim算法
    最短路径之迪杰斯特拉(Dijkstra)算法
    C函数指针
    Linux进程的实际用户ID和有效用户ID
    C++ 之Boost 实用工具类及简单使用
    ELK之消息队列选择redis_kafka_rabbitmq
    Python文件操作
  • 原文地址:https://www.cnblogs.com/kangyun/p/5616106.html
Copyright © 2011-2022 走看看