SpringBoot日常:@Scheduled实现服务启动时执行一次

文章目录

    • 一、@Scheduled详解
    • 二、逻辑实现
      • 1、创建定时任务逻辑方法
      • 2、新建一个启动执行类
    • 三、测试结果

说到定时任务,我们应该会想起@Scheduled,Quartz以及XXL-JOB,但是有的单体服务或者小项目,为了方便快捷,可能会直接使用@Scheduled去实现异步任务。因此,从而延伸出本文的主题需求。

当项目中使用@Scheduled,如何在项目启动的时候让指定的异步任务提前执行一次?

一、@Scheduled详解

@Scheduled注解支持多个参数,用于灵活控制任务执行时间

  • cron:Cron表达式,可以精准控制秒、分、小时、日、月、周等
    在这里插入图片描述
  • zone:接收一个时区,比如我们一般使用的时区Asia/Shanghai,该字段我们一般留空。
  • fixedDelay:上一次执行完毕时间点之后多长时间再执行。如@Scheduled(fixedDelay = 5000)
  • fixedDelayString:与 fixedDelay 意思相同,只是使用字符串的形式。唯一不同的是支持占位符,如@Scheduled(fixedDelayString = “5000”)
  • fixedRate:上一次开始执行时间点之后多长时间再执行,如@Scheduled(fixedRate = 5000)
  • fixedRateString:与 fixedRate 意思相同,只是使用字符串的形式。唯一不同的是支持占位符。
  • initialDelay:第一次延迟多长时间后再执行,如第一次延迟1秒后执行,之后按fixedRate的规则每5秒执行一次@Scheduled(initialDelay=1000, fixedRate=5000)
  • initialDelayString:与 initialDelayString 意思相同,只是使用字符串的形式。唯一不同的是支持占位符。

二、逻辑实现

1、创建定时任务逻辑方法

/*** @Author 码至终章* @Version 1.0*/
@Component
public class ScheduledTest {@Scheduled(cron = "* 1 * * * ?")public void task1() throws Exception{System.out.println("task1 执行: " + Thread.currentThread() + "-" + DateTime.now());}
}

2、新建一个启动执行类

该类主要在启动时手动调用指定的任务方法

/*** @Author 码至终章* @Version 1.0*/
@Component
public class StartupTasks {private final ScheduledTest scheduledTasks;public StartupTasks(ScheduledTest scheduledTasks) {this.scheduledTasks = scheduledTasks;}@PostConstructpublic void startUp() {try {System.out.println("服务启动执行任务");scheduledTasks.task1();}catch (Exception e){e.printStackTrace();}}
}

注:启动类记得自己加上@EnableScheduling,定时任务 才会执行,当然这个不影响本文的逻辑测试

三、测试结果

服务启动后,查看打印信息
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868968.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【昇思25天学习打卡营第1天】

前言 例如:随着大模型的爆火,这门技术也越来越重要,很多人都开启了关于大模型知识的学习,但大模型需要一定的资源且涉及的模块很多,如果个人想要系统的学习会有些难度,好在有昇思大模型平台,能…

WebRTC群发消息API接口选型指南!怎么用?

WebRTC群发消息API接口安全性如何?API接口怎么优化? WebRTC技术在现代实时通信中占据了重要地位。对于需要实现群发消息功能的应用程序来说,选择合适的WebRTC群发消息API接口是至关重要的。AokSend将详细介绍WebRTC群发消息API接口的选型指南…

本地部署 SenseVoice - 阿里开源语音大模型

本地部署 SenseVoice - 阿里开源语音大模型 1. 创建虚拟环境2. 克隆代码3. 安装依赖模块4. 启动 WebUI5. 访问 WebUI 1. 创建虚拟环境 conda create -n sensevoice python3.11 -y conda activate sensevoice 2. 克隆代码 git clone https://github.com/FunAudioLLM/SenseVoic…

本地部署 Llama3 – 8B/70B 大模型!

Llama3,作为Meta公司新发布的大型语言模型,在人工智能领域引起了广泛的关注。特别是其8B(80亿参数)版本,在性能上已经超越了GPT-3.5,而且由于是开源的,用户可以在自己的电脑上进行部署。 本文和…

太多项会毁了回归

「AI秘籍」系列课程: 人工智能应用数学基础 人工智能Python基础 人工智能基础核心知识 人工智能BI核心知识 人工智能CV核心知识 多项式回归的过度拟合及其避免方法 通过添加现有特征的幂,多项式回归可以帮助你充分利用数据集。它允许我们甚至使用简…

【智能算法改进】多策略改进的蜣螂优化算法

目录 1.算法原理2.改进点3.结果展示4.参考文献5.代码获取 1.算法原理 【智能算法】蜣螂优化算法(DBO)原理及实现 2.改进点 混沌反向学习初始化 采用 Pwlcm 分段混沌映射,由于 Pwlcm 在其定义区间上具有均匀的密度函数,在特定的…

User parameters 用户参数与Web监控

目录 一. 自定义键介绍 二. 制作步骤 1. 添加无可变部分参数 2. 添加有可变参数 3. 使用用户参数监控php-fpm 服务的状态 三. Web页面导入应用监控 四. Web监控 主要功能和操作: 开启方式 官方预定义监控项文档https://www.zabbix.com/documentation/6…

华三m-lag三层转发+VRRP配置案例

目录 一、相关理论介绍 1.1 华三M-LAG介绍 1.2 DRCP协议 1.3 keepalive机制 1.4 MAD机制 1.5 一致性检查功能 二、M-LAG系统建立及工作过程 三、实验组网案例 3.1 组网需求 3.2 组网拓扑 3.3 设备接口及地址规划 四、具体配置命令 4.1 S6850-1的配置 4.2 S6850-2…

AI:助力开发者翱翔,而非抢夺其舞台

在当今这个科技飞速发展的时代,人工智能(AI)犹如一股春风,悄然渗透进全球各个行业,尤其在软件开发领域,其影响力日益显著。从初创企业到跨国巨头,无一不在积极探索AI如何重塑编程的面貌&#xf…

护眼灯什么价位的好?好用又实惠的护眼灯推荐

护眼灯,简单来说就是保护视力的台灯,专业的护眼台灯的光线与自然光光线相似,有亮度稳定、不闪烁,发光面积大等这些特点。那么,护眼灯什么价位的好?市面上所出现的护眼台灯良莠不齐,价格低的质量…

【源码+文档+调试讲解】文物管理系统

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

warning: LF will be replaced by CRLF the next time Git touches it warning

问题: warning: in the working copy of , LF will be replaced by CRLF the next time Git touches it warning: 今天上传git时报错,使用Ai;得知; 解决: 将 Git 配置为不自动转换换行符,使用以下命令…

一.5 高速缓存至关重要

这个简单的示例揭示了一个重要的问题,即系统花费了大量的时间把信息从一个地方挪到另一个地方。hello程序的机器指令最初是存放在硬盘上,当程序加载时,它们被复制到主存;当处理器运行程序时,指令又从主存复制到处理器。…

触摸屏虚拟键盘组件 jQuery Virtual Keyboard使用 自定义键盘

如何在触摸设备上为输入域添加虚拟键盘? 一个插件可以解决这个问题,关键还支持高度自定义(git地址): GitHub - Mottie/Keyboard: Virtual Keyboard using jQuery ~ 官网地址:Virtual Keyboard 使用步骤&…

NISP证书备考指南与经验分享

在信息安全领域,NISP(国家信息安全水平考试)作为衡量专业能力的重要标尺,不仅是职场晋升的敲门砖,更是个人技能提升的关键一步。面对这一挑战,如何高效备考,成为众多学员关注的焦点。今天,为您精心打造这份…

原生APP开发的优势

原生APP开发是指使用特定的编程语言和开发工具,针对特定的操作系统平台进行开发的应用程序。相比于混合开发和Web开发,原生APP开发具有以下优势。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1. 性能更优 原…

Spring Boot Vue 毕设系统讲解 3

目录 项目配置类 项目中配置的相关代码 spring Boot 拦截器相关知识 一、基于URL实现的拦截器: 二、基于注解的拦截器 三、把拦截器添加到配置中,相当于SpringMVC时的配置文件干的事儿: 项目配置类 项目中配置的相关代码 首先定义项目认…

FPGA之 串口UART通信

FPGA之串口UART通信 1. UART发送模块(Transmitter)2. UART接收模块(Receiver)3. testbench4. 边沿检测电路 串口(Universal Asynchronous Receiver/Transmitter,UART)是一种串行通信协议&#x…

通义千问Qwen-VL-Chat大模型本地部署(一)

目录 前言 环境准备 软件安装 其它库安装启动项目 FASTAPI 小结 前言 人工智能大模型是一种能够利用大数据和神经网络来模拟人类思维和创造力的人工智能算法。它利用海量的数据和深度学习技术来理解、生成和预测新内容,通常情况下有数十亿乃至数百亿个参数&#xf…

什么?这动物图片可以上国家地理?

stable difussion中大部分的模型都是关于人的,今天交给大家一些不一样的:如何生成动物图片。在这篇文章中我们将会学到如何生成逼真的动物,可爱的动物,还有幻想中的动物。 准备工作 当然前提是你需要一个SD的软件,你可以用本地的SD webUI或…