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.将该配置文件与主文件关联,启动项目查看结果!

  • 相关阅读:
    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/newAndHui/p/8274520.html
Copyright © 2011-2022 走看看