SpringBoot中的定时工具——Scheduled

@Scheduled定时器 当任务开始时Spring就会给这个任务计时,5秒钟时候Spring就会再次调用这个任务,可是发现原来的任务还在执行,这个时候第二个任务就阻塞了(这里只考虑单线程的情况下,多线程后面再讲),甚至如果第一个任务花费的时间过长,还可能会使第三第四个任务被阻塞。每分钟的第十秒执行一次。比如第一次执行时间为2023-10-20 23:09:10,下一次2023-10-20 23:10:10,再下一次2023-10-20 23:11:10。上一次任务执行完毕时间点之后多长时间再执行,任务的执行要等上一个任务执行结束。 阅读详情

**需求:**每10分钟抽取数据库中A表和B表的数据,并按映射字段组合映射后到C表。
考虑到SpringBoot快速开发的便利,尝试使用SpringBoot来解决这一问题。后来发现,真的很简单。

首先,使用maven搭建一个SpringBoot的项目,网上有很多就不详细介绍了。后面可以单独出一篇文章。

1、写一个,SpringBoot的入口类。

@EnableScheduling
@SpringBootApplication
public class App{
	public static void main(String[] args) throws Exception {
		SpringApplication.run(App.class, args);
	}
}

其中@SpringBootApplication和@EnableScheduling注解分别表示,springboot的入口注解和定时器的入口。

2、开始写定时器,有两种定时的方式。

**第一种:**定义初始的延迟时间,和下次执行的至当前时间的间隔。

@Scheduled(initialDelay = 0, fixedDelay = 1000 * 60 * 5)
	public void reportCurrentTime() {
		//业务逻辑
	}

在所要定义的方法前加入@Scheduled注解,initialDelay表示第一次执行的延迟时间,fixedDelay下次执行的至当前时间的间隔,上面的代码中表示:程序启动后立刻开始执行任务,任务完成后每10分再执行一次。

**第二种:**定义触发cron计划任务

	@Scheduled(cron = "* 0/2 * * * *")
	public void reportCurrentTime() {
		//业务逻辑
	}

Cron是一种计划任务的表达式,上面的代码中 * 表示任意,0/2 表示每2分钟。详细的讲解可以自行百度。也可以使用在线Cron表达式生成器。操作还是很简单的,需要注意SpringBoot中表达式位数为6为,多了会报错。
Cron表达式格式:
{秒数} {分钟} {小时} {日期} {月份} {年份(可为空)}。

关于SpringBoot自带的定时器Scheduled的使用 最近项目中有一个活动模块的功能其中有活动的状态。要根据状态来查出,未开始的活动和已结束的活动。其中活动状态要根据活动结束的时间自动修改。然后研究了一下SpringBoot自带的定时器Scheduled。废话不多说,上代码。 1、Mapper层: 2、Sql语句 这里说一下sql语句的RIGHT函数,这个是把某个字段的值从右往左截取字符串;例如SELECT RIGHT(‘foobarbar’,... 阅读详情

相关推荐

场景应用:如何在SpringBoot框架下实现一个定时任务?

Spring给我们提供了可执行定时任务的线程池ThreadPoolTaskScheduler,该线程池提供了多个可以与执行定时任务的方法,如下图。这里我们不需要做Quarze的配置,我们要做的是去继承一个quarze的一个抽象类QuartzJobBean,代表这个是一个Job然后是实现这个抽象类中的方法就是我们具体的工作。创建完一个job后我们是不是要创建一个jobDetail工作明细来绑定我们的工作,再创建一个触发器来绑定工作明细,再由时间调度说明jobDetail和Tigger的关系。...

流楚丶格念的博客 1891

SpringBoot之Scheduled定时任务详解

使用SpringBoot创建Scheduled定时任务非常简单,目前主要有以下三种创建方式: 一、基于注解(@Scheduled)静态任务 二、基于接口(SchedulingConfigurer),可根据数据库动态调度任务 三、基于注解设定多线程定时任务 静态:基于注解 基于注解@Scheduled默认为单线程,开启多个任务时,任务的执行时机会受上一个任务执行时间的影响。 创建定时器 使用Spri...

weixin_41003771的博客 1926

【PLC】三菱plc控件安装 component Movedata had the following error ... Error Number:-119

Windows 10 专业版/企业版本版本号:22H2操作系统内部版本:19045.3448。

少莫千华 8002

Java中定时任务ScheduledThreadPoolExecutor、Timer、@Scheduled和Quartz

在实际应用中,有时候我们需要创建一些个延迟的、并具有周期性的任务,比如,我们希望当我们的程序启动后每隔1小时就去做一次日志记录、每天凌晨12点去清理一下数据库中的过期数据等。在JDK中提供了两种方法去创建延迟周期性任务。下面我们来具体认识这三个框架。

杜海的博客 6597

Java + Selenium + TestNg + Allure Web UI 自动化

我们知道,在Python中针对Web UI自动化有Python + Selenium + Pytest/Unittest +Allure的技术栈。那么对于Java而言,也有其独特的Web UI 自动化技术栈。相同的,我们同样的运用Selenium框架,测试报告同样运用Allure。不同的是,我们运用的语言由Python转化为了Java,测试用例管理框架从Pytest转化为了TestNG。

qq_45594960的博客 1913

如何理解界面陷阱电荷呢(interface trapped charge)和费米钉扎效应?

如何理解界面陷阱电荷呢?(interface trapped charge) 我们在学半导体物理的时候经常对各种界面态和陷阱分不清楚,然而这却是半导体中最为关键的知识点之一。我这路主要介绍一下如何比较直观地理解界面陷阱电荷,应该也有叫界面态,快态之类的。 在介绍界面陷阱电荷之前,我们可以回顾一下施主(donor)和受主(acceptor)的概念。在si中如果掺杂了n型杂质P,那么P由于最外层电子有5个,有一个电子比较容易跑走,成为自由移动的导电电子,在能带中可以表现为电子从禁带中的能级跃迁到导带,这种情况我

Wang_P_P的博客 3万+

Springboot定时任务@Scheduled

Springboot定时任务@Scheduled SpringBoot中对定时任务也提供了支持,使用很简单,两个注解就可以开启定时任务,@Scheduled用于指定定时任务,@EnableScheduling用来开启定时任务。 SpringBoot 2.x版本 1.简单示例 2.相关概念 一、简单示例 1.建立ScheduledService类,写一个方法,在方法上使用注解@Schedul...

cgl_dong的博客 503

IEC 62061 总结与适用范围

IEC 62061 是国际电工委员会(IEC)制定的。

cactusDaYe的博客 1083

SSM框架中配置定时任务

 在springmvc.xml添加如下内容 在xmlns中添加xmlns:task="http://www.springframework.org/schema/task"在xsi中添加http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd在中...

hlvy 1199

【现代信号处理】01 -概率论与随机过程回顾

概率论与随机过程回顾 文章目录概率论与随机过程回顾1. 统计模型的相关概念1.1 统计实验(不确定性)1.2 样本点1.3 样本空间Ω1.4 概率1.5.统计模型是先验的2. 概率和统计的差异2.1 联系2.2 差异2.3.1 概率和统计问题的三要素2.3.1.1 model-模型2.3.1.2 data-数据2.3.1.3 decision-决策2.3.2 关系图3. 样本空间的重要性3.1 贝朗特悖论3.1.1 解法一3.1.2 解法二3.1.3 解法三3.2 结论4.概率相关的概念4.1 随机变量4.

qq_41741344的博客 1405

项目经理必看:如何建立高效的相关方沟通机制?

你是否遇到过这样的场景?客户突然说“这不是我要的”,开发团队抱怨“需求总变”,高层追问“进度滞后为什么不早说”?这些问题的根源往往是——相关方沟通机制失效。本文聚焦“如何建立高效沟通机制”,覆盖从识别相关方到持续优化的全流程,适用于IT、产品、工程等各类项目。本文将按“理解问题→拆解核心概念→掌握工具方法→实战落地→未来趋势”的逻辑展开,重点讲解“相关方分析矩阵”“沟通计划表”等实用工具,并用“组织生日派对”的案例贯穿全文,让抽象概念变得可感知。相关方识别:用“权力/利益矩阵”找对人(像派对邀请关键客人)

项目管理的博客 1295

springboot定时发送短信_GitHub - yesnomore/super-scheduled: SpringBoot的定时调用的加强工具,实现定时任务动态管理,后续加入可视化管理、调度日志、...

SpringBoot的定时任务动态管理SpringBoot的定时任务的加强工具,实现定时任务动态管理,完全兼容原生@Scheduled注解,无需对原本的定时任务进行修改引入jar包com.github.guoyixingspring-boot-starter-super-scheduled0.3.4原理说明配置参数1.配置定时任务线程池(不配置时采用默认参数)#线程池大小spring.super....

weixin_39601657的博客 357

太阳敏感器:卫星姿态控制的“指南针

在卫星姿态控制系统中,太阳敏感器(Sun Sensor) 是至关重要的光学姿态敏感器之一。它通过探测太阳光的方向,为卫星提供关键的姿态参考信息,确保卫星能够正确调整自身方位,维持稳定的对日定向,保障能源供应和任务执行。

ScilogyHunter的博客 1731

scheduled只执行一次_记一次线程等待引起的bug解决过程

1. 记一次线程等待引起的bug解决过程1.1. 问题使用Springboot的Scheduled注解框架执行定时任务,发现线上突然不打任何日志了,我们要找到它不打日志的原因1.2. 导出堆栈信息我们使用的是阿里的k8s服务,其实哪里都一样,进到对应容器的里,导出堆栈信息jps 或 top找到执行java程序的pidjstack -l pid > out.dump然后退出容器后,使用dock...

weixin_39958138的博客 413

(五)深入理解Bluez协议栈之“GATT Server Profile”

上一篇介绍Bluez协议栈的了GAP Profile的实现,本章节我们继续介绍GATT Profile的实现,参考的程序是Peripheral。通过阅读它的实现代码可以发现,它广播部分是通过mgmt来实现的,然后在初始化完成之后,创建了一个L2CAP类型的socket,来负责实现GATT Server的逻辑。

1143

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SpringBoot 实现定时任务

基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,既任务是并发执行,互不影响。默认为单线程,可以看到三个定时任务都已经执行,并且使同一个线程中串行执行,如果只有一个定时任务,这样做肯定没问题,当定时任务增多,如果一个任务卡死,会导致其他任务也无法执行。Quartz:一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。3.2,修改2.中的定时任务的类或者方法上添加@Async​​​​​​​。3.1 添加配置类并启用异步事件。

java_linux_dev的博客 1016

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringBoot的定时任务动态管理

地址:GitHub - guoyixing/super-scheduled: SpringBoot的定时调用的加强工具,实现定时任务动态管理,后续加入可视化管理、调度日志、集群任务统一管理

怪只怪满眼尽是人间烟火 862

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

visio安装包

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

定时任务三部曲

schedule(TimerTask task,long delay,long period) :延迟delay毫秒并每隔period毫秒执行一次。schedule(TimerTask task,long delay) :延迟delay毫秒再执行任务。缺点: 该类是单线程实现,如果任务执行时间太长或者发生异常,会影响其他任务的执行。若定时任务与启动类不在同一个类中,在有定时任务的类上添加一下注解。// 3、任务执行间隔 4、间隔时间单位。// 参数:1、任务体 2、首次执行的延时时间。

feiyu97的博客 158

SpringBoot笔记教程

SpringBoot笔记 SpringBoot简介 Spring Boot是Spring公司的一个顶级项目,和Spring Framework是一个级别的。 SpringBoot主要是学习如何整合其他技术 Spring Boot实际上是利用Spring Framework 4 自动配置特性完成。。如果是Spring自己封装的启动器的artifact id名字满足:spring-boot-starter-xxxx,如果是第三方公司提供的启动满足:xxxx-spring-boot-starter。以后每次

weixin_49358906的博客 356

关于springboot项目在普通Java类(非controller或者service类)注入@Autowired引用service类的方法

package com.bootdo; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; import org.spri...

Idonng的专栏 906

Springboot之使用Scheduled做定时任务

Springboot中使用Scheduled实现定时任务: 1、在程序入口的类上加上注释@EnableScheduling即可开启定时任务 2、需要在定时任务的类上加上注释:@Component 3、在具体的定时任务方法上加上注释@Scheduled即可启动该定时任务。 @Scheduled中的参数: @Scheduled(fixedRate=3000):上一次开始执行时间点

I_love_gqj的博客 476

springboot实现定时任务

Scheduled

zhang_oracle的博客 902

SpringBoot定时任务

SpringBoot定时任务 1.概述 SpringBoot定时任务是干嘛的呢, 就比如在日常的项目开发中,往往会涉及到一些需要做到定时执行的代码,例如自动将超过24小时的未付款的单改为取消状态,自动将超过14天客户未签收的订单改为已签收状态等等 2.实现方式 1.添加注解的方式 启动类添加注解 @EnableScheduling 开启对定时任务的支持 package com.example; import org.springframework.boot.SpringApplication; impor

qq_44737039的博客 247

springboot 定时器设置,自动推送邮件

构建定时器 配置文件 @Configurable --定时器需要的注解 @EnableScheduling --定时器需要的注解 @RestController --包含component @RequestMapping("/report") public class ExcelReportToolTime { 定时器简易代码 /** * 直接指定时间间隔,例如:每天15:09 * "0 10 0 1 * ?" 每月1号的0:10:00执行 * "0 15 10 L

xiaogangpi的专栏 732

springboot使用 @EnableScheduling、@Scheduled开启定时任务

1.在main启动项添加一个注解@EnableScheduling package com.example.springmybatis; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframew...

weixin_30299709的博客 315

SpringBoot学习之定时任务-Scheduler

今日份学习记录:SpringBoot定时任务-Scheduled。 首先创建一个webservice项目: IDEA自动构建,pom.xml如下: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocati

minantadd的博客 754
上一篇: DNS解析域名解析过程
下一篇: HBase操作组件:Hive、Phoenix、Lealone
SmallSunL
博客等级 码龄9年 29粉丝 16原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值