spring利用squertz实现定时任务

发布时间 - 2026-01-10 22:42:53    点击率:

前言

说起定时任务,开发的小伙伴们肯定不陌生了。有些事总是需要计算机去完成的,而不是傻傻的靠我们自己去。可是好多人对定时器总感觉很陌生,今天小编就带小伙伴们揭开它的神秘面纱,讲解一下spring利用squertz实现定时任务。

一、需要的Jar

quartz-1.8.5.jar 
commons-logging.jar 
spring-core-3.0.5.RELEASE.jar 
spring-beans-3.0.5.RELEASE.jar 
spring-context-3.0.5.RELEASE.jar 
spring-context-support-3.0.5.RELEASE.jar 
spring-asm-3.0.5.RELEASE.jar 
spring-expression-3.0.5.RELEASE.jar 
spring.transaction-3.0.5.RELEASE.jar 
spring-web-3.0.5.RELEASE.jar 

二、配置文件

这里配置你要在什么时候执行你的定时任务,执行的是什么方法,如下面是在2016.11.10 23:00:00,执行com.seewoedu.train.quartz.GenerateRewardListTaskgenerate方法,这里使用cron指定了执行的时间,相关语法可查看https://www./article/103861.htm

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 <!-- 启动触发器的配置开始 -->
 <bean name="startQuertz" lazy-init="false" autowire="no"
  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
 <property name="triggers">
  <list>
  <ref bean="myJobTrigger" />
  </list>
 </property>
 </bean>
 <!-- 启动触发器的配置结束 -->

 <!-- quartz-2.x的配置 -->
 <bean id="myJobTrigger"
  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
 <property name="jobDetail">
  <ref bean="myJobDetail" />
 </property>
 <property name="cronExpression">
  <!--<value>10 0/1 * * * ?</value>--> <!-- Cron表达式“10 */1 * * * ?”意为:从10秒开始,每1分钟执行一次。 -->
  <value>0 0 9 10 12 ? 2016</value> <!-- Cron表达式“0 0 23 10 11 ? 2016”意为:只在2016.11.10 23:00:00 执行。 -->
 </property>
 </bean>
 <!-- 调度的配置结束 -->

 <!-- job的配置开始 -->
 <bean id="myJobDetail"
  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 <property name="targetObject">
  <ref bean="myJob" />
 </property>
 <property name="targetMethod">
  <value>generate</value>
 </property>
 </bean>
 <!-- job的配置结束 -->

 <!-- 工作的bean -->
 <bean id="myJob" class="com.seewoedu.train.quartz.GenerateRewardListTask" />
</beans>

三、被执行的方法

public class GenerateRewardListTask {
 @Autowired
 private GiftReceiveRecordService giftReceiveRecordService;

 org.slf4j.Logger logger = LoggerFactory.getLogger(GenerateRewardListTask.class);

 public void generate() throws Exception {
 giftReceiveRecordService.generateRewardMember(); //执行的方法

 }
}

四、需要注意的问题

      1、执行时间指定到年份时,会存在一个问题,就是在你在过了这个时间后再启动项目的时候,他会一直报一个memory leak的错误,大概的意思是你的定时任务将永远不会被执行,导致项目一直启动不了。

      2、定时任务是通过你部署项目开始计算到你要执行定时任务的时间间隔,而不是实时获取你服务器时间的方法实现的,所以通过修改服务器时间想测试定时任务是否生效是不可行的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。


# spring  # 定时任务  # spring定时任务配置  # spring的定时任务配置  # JAVA中 Spring定时器的两种实现方式  # java中 spring 定时任务 实现代码  # 最流行的java后台框架spring quartz定时任务  # Spring整合Quartz实现定时任务调度的方法  # Spring整合Quartz实现动态定时器的示例代码  # Spring整合TimerTask实现定时任务调度  # spring 定时任务@Scheduled详解  # spring中定时任务taskScheduler的详细介绍  # 意为  # 的是  # 而不是  # 是在  # 小伙伴们  # 过了  # 你要  # 什么时候  # 你在  # 执行时间  # 要在  # 他会  # 人对  # 只在  # 一个问题  # 这篇文章  # 永远不会  # 过你  # 需要注意  # 小编 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  QQ浏览器网页版登录入口 个人中心在线进入  Laravel如何配置Horizon来管理队列?(安装和使用)  如何在香港服务器上快速搭建免备案网站?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Python图片处理进阶教程_Pillow滤镜与图像增强  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  如何正确选择百度移动适配建站域名?  长沙企业网站制作哪家好,长沙水业集团官方网站?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何在云虚拟主机上快速搭建个人网站?  JavaScript模板引擎Template.js使用详解  专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?  如何构建满足综合性能需求的优质建站方案?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  动图在线制作网站有哪些,滑动动图图集怎么做?  如何在IIS中新建站点并配置端口与物理路径?  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  如何快速搭建高效简练网站?  Thinkphp 中 distinct 的用法解析  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何快速重置建站主机并恢复默认配置?  Laravel如何实现用户密码重置功能?(完整流程代码)  香港服务器部署网站为何提示未备案?  ChatGPT常用指令模板大全 新手快速上手的万能Prompt合集  JavaScript如何实现路由_前端路由原理是什么  Laravel如何使用Telescope进行调试?(安装和使用教程)  制作企业网站建设方案,怎样建设一个公司网站?  ,南京靠谱的征婚网站?  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何用花生壳三步快速搭建专属网站?  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  微信推文制作网站有哪些,怎么做微信推文,急?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  公司门户网站制作流程,华为官网怎么做?  php json中文编码为null的解决办法  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  python中快速进行多个字符替换的方法小结  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  如何在建站主机中优化服务器配置?  详解Android图表 MPAndroidChart折线图  如何在万网自助建站平台快速创建网站?  微信小程序 input输入框控件详解及实例(多种示例)  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  iOS验证手机号的正则表达式  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】