大型运输行业实战_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.将该配置文件与主文件关联,启动项目查看结果!
分类:
大型运输行业项目
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人