zoukankan      html  css  js  c++  java
  • 大型运输行业实战_day13_1_定时任务spring-quartz

    1.jar包

      拷贝quartz-2.2.3.jar包到项目

    2.编写定时任务类TicketQuart.java

     1 package com.day02.sation.task;
     2 
     3 import com.day02.sation.page.ResultPage;
     4 import com.day02.sation.query.TicketQueryObj;
     5 import com.day02.sation.service.ITicketService;
     6 import org.slf4j.Logger;
     7 import org.slf4j.LoggerFactory;
     8 import org.springframework.beans.factory.annotation.Autowired;
     9 
    10 /**
    11  * 特别注意定时任务开启越多对性能影响越大
    12  * 如果执行频率相同,建议在一个定时任务开启后执行处理多个业务方法
    13  * Created by Administrator on 1/11.
    14  */
    15 public class TicketQuartz {
    16     private static final Logger logger= LoggerFactory.getLogger(TicketQuartz.class);
    17     @Autowired
    18     private ITicketService ticketService;
    19     /**
    20      * 每一分钟执行一次
    21      */
    22     public void getTickteList(){
    23         logger.info("-----getTickteList------start----------");
    24         ResultPage page = ticketService.getPage(new TicketQueryObj());
    25         System.out.println(" page="+page);
    26 
    27     }
    28 
    29     /**
    30      * 每2分钟执行一次
    31      */
    32     public void getRouteList(){
    33         logger.info("------getRouteList-----start----------");
    34     }
    35 }

    3.编写spring-quartz.xml配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xsi:schemaLocation="http://www.springframework.org/schema/beans
     5         http://www.springframework.org/schema/beans/spring-beans.xsd">
     6     <!--1.定时任务类-->
     7     <bean id="ticketQuartz" class="com.day02.sation.task.TicketQuartz"/>
     8 
     9     <!--2.执行方法-->
    10     <bean id="method_getTickteList" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    11         <property name="targetObject" ref="ticketQuartz"/>
    12         <property name="targetMethod" value="getTickteList"/>
    13         <property name="concurrent" value="false"/>
    14     </bean>
    15     <bean id="method_getRouteList" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
    16         <property name="targetObject" ref="ticketQuartz"/>
    17         <property name="targetMethod" value="getRouteList"/>
    18         <property name="concurrent" value="false"/>
    19     </bean>
    20     <!-- 3.执行的频率 时间-->
    21     <bean id="time_getTickteList" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    22         <property name="jobDetail" ref="method_getTickteList"/>
    23         <!--每一分钟执行一次-->
    24         <property name="cronExpression" value="0 0/1 * * * ?"/>
    25     </bean>
    26     <bean id="time_getRouteList" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
    27         <property name="jobDetail" ref="method_getRouteList"/>
    28         <!--每一分钟执行一次-->
    29         <property name="cronExpression" value="0 0/2 * * * ?"/>
    30     </bean>
    31     <!-- 4.开启定时任务-->
    32     <bean id="startJob" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    33         <property name="triggers">
    34             <list>
    35                 <ref bean="time_getTickteList"/>
    36                 <ref bean="time_getRouteList"/>
    37             </list>
    38         </property>
    39     </bean>
    40 </beans>

     4.时间频率表达式规则

     1  时间大小由小到大排列,从秒开始,顺序为 秒,分,时,天,月,年    *为任意 ?为无限制。 
     2 
     3 具体如下: 
     4 "0/10 * * * * ?" 每10秒触发 
     5 "0 0 12 * * ?" 每天中午12点触发 
     6 "0 15 10 ? * *" 每天上午10:15触发 
     7 "0 15 10 * * ?" 每天上午10:15触发 
     8 "0 15 10 * * ? *" 每天上午10:15触发 
     9 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 
    10 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 
    11 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 
    12 "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 
    13 "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 
    14 "0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发 
    15 "0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发 
    16 "0 15 10 15 * ?" 每月15日上午10:15触发 
    17 "0 15 10 L * ?" 每月最后一日的上午10:15触发 
    18 "0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发 
    19 "0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 
    20 "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发  

     5.将该配置文件与主文件关联,启动项目查看结果!

  • 相关阅读:
    InnoDB 事务
    InnoDB 索引
    MySQL 8 事务管理、数据库维护、改善性能
    MySQL 7 存储过程、游标、触发器
    MySQL 6 插入数据(INSERT INTOVALUESSELECT FROM)、更新和删除数据(UPDATE SET WHEREDELETE)、创建和操纵表、视图
    MySQL 5 联结表、创建高级联结、组合查询、全文本搜索
    MySQL 4 数据处理函数、汇总数据、分组数据、子查询
    MySQL 3 通配符、正则、计算字段
    MySQL 2 SQL数据使用(检索、排序、过滤:SELECT/FROM/LIMIT/ORDER BY/DESC/WHERE/AND/OR/IN/NOT)
    JavaScript相关-深入理解函数2
  • 原文地址:https://www.cnblogs.com/newAndHui/p/8274520.html
Copyright © 2011-2022 走看看