关于Spring的定时任务

Spring 中的定时任务 文章目录定时任务原理 在 Spring 中使用定时任务非常容易,步骤如下: 第一步启动类加上 @EnableScheduling 注解。 package com.springboot.chapter13; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.sched 阅读详情

前段时间在项目中写了个定时任务,使用了@Scheduled注解,经过没有什么毛病。发版之后发现到点跑任务时每次跑两次,跑出两条完全一样的数据。

复查代码发现该错误不应该出现,因为插入数据库之前都做了查询,如果存在当日数据则不插入。那为什么会出现这个问题呢?感觉是环境的问题,在测试环境上并没有出现该错误。经过排查发现,测试环境的tomcat的Server.xml配置文件里是这样的:

      <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>

    </Host>

但是正是环境的Server.xml配置文件是这样的:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>

       <Context docBase="TestApp" path="/TestApp" reloadable="true" source="org.eclipse.jst.jee.server:TestApp"/>
    </Host>

多了一个Context标签,运维加这个是为了不用输入项目名称,只输入IP和端口即可访问项目,但是这个配置就引发了错误,在appBase="webapps"这里tomcat加载一次应用,在docBase="TestApp"这里又去加载一次应用,导致定时任务被执行两次。

其实Context标签去掉即可,但是为了不影响直接访问项目,将appBase="webapps"改为appBase="",docBase="TestApp"改为docBase="webapps/TestApp",这样就完美解决问题。

Spring Boot 实现定时任务 阅读详情

相关推荐

【Spring学习】spring提供的三种定时任务

在spring中我们有三种不同的定时任务:基于Quartz的定时机制、基于Timer的定时机制、基于Executor的定时机制。 1、基于Quartz的定时任务机制 下面详细解释这个类图中涉及的关键类及其使用场景 1.1. SchedulerFactoryBean 这是Spring中基于Quartz的定时机制入口,只要Spring容器装载了这个类,Quartz定时机制就会启动,并加载定...

lmb55的专栏 1705

关于事物默认使用JDK动态代理导致的错误

这个错误提示说明在目标类(SampleTaskManagementSchedule)的代理类型中没有找到被代理的方法(sampleTaskManagement)的声明。这可能是因为你的配置使用了基于接口的代理(JDK动态代理),但目标类中没有相应的接口。事务的实现是通过AOP(面向切面编程)来实现的。当你在方法上添加@Transactional注解时,Spring就会创建一个动态代理来管理事务,如果没有显式地配置,Spring将默认使用JDK动态代理。将事物的代理方式改为cglib,或者创建该类的接口。

qq_45398535的博客 741

need to invoke method 'taskExecute' declared on target class 'ShareEquallyTaskServiceImpl', but not

文章目录need to invoke method 'taskExecute' declared on target class 'ShareEquallyTaskServiceImpl', but not found in any interface(s) of the exposed proxy type. Either pull the method up to an interface o...

简简单单Onlinezuozuo 1万+

but not found in any interface(s) of the exposed proxy type. Either pull the method up to an interfa...

这个错误信息通常是在使用 Spring 中的代理时出现的,表明在使用接口进行代理时,找不到要调用的方法。 解决方法有两种: 将要调用的方法放到接口中。 在配置中强制使用 CGLIB 代理,也就是开启 proxy-target-class 模式。 在选择哪种方法时,应该考虑方法的适用场景。如果是接口中的方法,那么应该将它放到接口中;如果是类中的方法,那么应该使用 CGLIB 代理。 ...

weixin_35751412的博客 1543

Java定时执行任务的三种方法

介绍了Java定时执行任务,给出了如何使用ServletContextListener实现定时运行java某个方法的例子,简单易用。

【SystemVerilog项目实践】4.AHB-SRAMC(验证计划)

验证计划

托马斯的博客 3661

Spring定时任务

spring实现定时任务

weixin_47852232的博客 560

STM32F407 FSMC并口读取AD7606

先贴一下最终效果图.这个是AD7606并口读取数据一个周期后的数据结果. 原始波形用示波器看是很平滑的. AD7606不知为何就会出现干扰, 我猜测可能是数字信号干扰导致的. 因为干扰的波形很有规律. 这种现象基本上可以排除是程序问题. 应该是干扰或者数字信号干扰,或者是数字和模拟共地导致的.是一个宏,实际上是指向的一个内存地址, 这个内存地址是FSMC指定的地址. 使用FSMC接口, 可免于控制引脚, 直接读取某个地址即可, FSMC会自动产生操作时序. 具体请见FSMC相关知识.

走错路的程序员 5497

spring定时任务配置,以及不执行的解决办法

前几天,同事问了我一个问题,我告诉他用spring的定时任务解决,并给他配置了spring的定时任务。当时随便找了一个bean写了一段代码,验证定时任务正确执行后,就没再管,昨天下午,同事写代码的时候,把这段代码移到了自己特定的bean中。问题就来了,定时任务不执行了。我给他把代码的位置又换回之前的那个bean中。又可以执行。。 弄了老半天,终于解决了。原来是spring延迟加载的问题。 sp

乘桴游海的专栏 2万+

无感无刷电机三段式启动避坑指南:从预定位到闭环切换的STM32代码实现

本文深入解析无感无刷电机的三段式启动流程,涵盖预定位、启动加速与闭环切换三大阶段。重点对比了恒频升压、恒压升频与升频升压三种核心启动策略的优劣,并提供了基于STM32的详细状态机代码实现与关键参数调试指南,帮助工程师有效规避启动失步、线圈过热等常见问题,实现稳定可靠的无感驱动。

herb5的博客 535

virtualbox虚拟机里面最顶部没有控制、设置和帮助等选项

无意中操作,导致virtualbox虚拟机里面最顶部没有控制,设置和帮助选项  virtualbox虚拟机窗口显示如下如: 如何设置,窗口显示如下图所示呢: virtualbox虚拟机窗口模式显示设置,切换可以通过如下图所示操作进行切换: PS:一定要是右边的Ctrl+C

WEL测试 8780

Spring Boot实现定时任务

定时任务是指在预定的时间点或按照特定的时间间隔自动执行的任务。操作系统维护:例如,定期清理临时文件、更新系统补丁等。数据备份:定期对重要数据进行备份,以防数据丢失。自动化测试:例如,在每天凌晨自动运行软件测试脚本。网站维护:比如定时发布新内容、定时发送邮件提醒等。数据分析:例如,定期汇总和分析业务数据,生成报告。

这河里吗l的博客 5448

【2023年】云计算比赛——金砖挑战赛正式题

文章摘要 本文详细记录了OpenStack私有云平台与Kubernetes容器云平台的部署与运维过程,涵盖环境初始化、组件安装、服务配置及自动化运维等关键任务。主要内容包括: OpenStack部署 环境初始化(主机名、Yum源、FTP服务等) 核心组件安装(Keystone、Glance、Nova、Neutron等) 运维任务(安全组管理、镜像上传、存储服务配置等) Kubernetes集群搭建 节点配置(时间同步、免密登录) 容器运行时(Docker)与网络插件(Flannel)部署 Harbor私有仓

geekgold的博客 313

spring schedule定时任务详解

spring schedule 使用方式以及源码解析

我亦是行人的博客 1万+

[游戏排查] Baldur‘s Gate 3 加载完成即崩溃?五步排查帮你快速定位问题

《博德之门3》加载崩溃问题解决方案:针对游戏进度条走完后闪退的情况,提供五步排查法。首先清除LevelCache缓存(成功率最高),其次检查Mod兼容性,然后切换Vulkan/DX11渲染API,再排查存档损坏问题,最后可删除配置目录(需备份存档)。重点提示Steam验证无法解决此类问题,建议按步骤顺序排查,多数情况下前两步即可解决问题。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 3262

突破边缘AI算力瓶颈:YOLOv12模型剪枝与知识蒸馏联合优化全攻略

这套剪枝-蒸馏联合方案的优势在于其系统性和可靠性。它不是单一的技巧,而是一套完整的工程流程,确保了从研发到部署的无缝衔接。

m0_71589036的博客 219

定时任务—Spring定时任务

Spring 为我们提供了异步执行任务调度的方式,提供了 TaskExecutor、TaskScheduler接口,还有两个注解 @EnableScheduling、@Scheduled。

Eris_QwQ的博客 1260

Pre-suite 开发之MFi功能搭建

Pre-suite 固件中只有带无线硬件的Ezairo 7160sl才具备无线通信能力,其无线功能包括标准BLE 5.2 低功耗蓝牙功能以及非标准的低功耗无线音频流功能。Ezairo 7160sl 支持3种低功耗无线音频流协议:来自APPLE的MFi,来自Google的ASHA以及来自onsemi的remote mic。其中MFi音频流走的G.722编码的Mode1,速率为64kbps;而非MFi音频流走的G.722的Mode3,速率为48kbps.

SnowYang2017的博客 1501

Spring 定时任务

本文参考自Spring官方文档 34. Task Execution and Scheduling。在程序中常常有定时任务的需求,例如每隔一周生成一次报表、每个月月末清空用户积分等等。Spring也提供了相应的支持,我们可以非常方便的按时执行任务。项目准备这里我使用Gradle来建立项目,然后在build.gradle中添加下面一行。springVersion的值是目前最新的Spring版本'4.3

乐百川 1682

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

【定时任务】——Spring定时任务Scheduled

定时任务在日常开发过程中非常常见,而且在日常的项目开发中也有多种实现方式,而且做任务调度的框架有很多种,小编最近的感受,如果想真正使用好任务调度还是存在困难的,所以分步学习,逐个击破!在这篇文章小编主要写spring中Scheduled。 spring定时任务设置有两种方式,注解和xml配置。推荐使用注解,在本文章也主要介绍注解方式配置。 注解方式配置定时任务 下面的步骤默认s...

漫漫长途,终有回转;余味苦涩,终有回甘 682

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Spring定时任务 Scheduled使用

在项目开发中,我们通常需要使用定时任务进行在一定的时间内进行任务的触发。@Scheduled 是 Spring 实现本地定时任务的核心注解,标记方法为定时任务,支持 cron、固定频率、固定延迟三种时间规则;启动类加 @EnableScheduling,方法需是无参、void、Spring Bean;cron 适合复杂时间规则,zone 解决时区问题,自定义线程池避免任务阻塞;默认单线程、不支持分布式,需针对性优化。

拽着尾巴的鱼儿的博客 1399

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

spring里面的定时任务的理解

在用spring自带的定时任务编写业务代码时,只需要在类上面加上@Scheduled注解并配上cron表达式即可完成一个定时任务的开发,那么这个注解的背后原理是什么样的呢? 其实spring并没有自创什么定时任务处理器,它也是用的java提供的ScheduledThreadPoolExecutor这个类实现的定时任务,所以搞清楚这个类的实现原理,也就明白了spring的定时任务的实现原理 首先看一下ScheduledThreadPoolExecutor的继承关系 可以看到这个类本身就是一个Thre

xiaxiaoying的专栏 746

spring4的定时任务

1、加入必须的jar包 spring-context-support-4.2.5.RELEASE.jar 2、配置spring.xml文件,加入以下内容 <bean id="testHandlerJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDeta

xieweikun7的博客 1247

spring的定时任务

一、前言 今天实现了一个要按每天凌晨4点自动拉取数据库数据到文件的需求用到了spring的定时任务,有些不记得了,重新查询资料复习了一下,记录下。 二、关于spring的定时任务---注解方式 spring的定时任务已经封装的很简单了,一种使用注解的方法简单配置一下就可以实现。这里有用到@EnableSchedulding用来表示开启定时任务放在要实现定时业务代码的类上,其次定时任务有三种方式实现 在要实现业务代码的方法上使用@Scheduled,主要用到的参数...

qq_41365804的博客 586

Spring中的定时任务

下面我们来看一下Spring中提供的定时任务开发: 在Spring中开发定时任务,分为3个步骤。 1 创建定时任务 2 注册定时任务 3 启动定时任务 分别来看一下 1 创建定时任务: package org.jnotnull; import java.util.TimerTask; public class MyTesk extends TimerTask...

zhukang0725的博客 204
上一篇: SQL遇到的小问题
下一篇: 一个小小的工作流的设计过程
BUG生产机
博客等级 码龄11年 8粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值