十分钟!教你玩转SprintBoot定时任务

spring boot +定时器 进行定时执行数据库操作 在程序开发的过程中,为了减轻服务器的压力,根据项目的需要对数据库的操作需要进行定时处理:spring boot 开发过程中使用的定时器代码案例如下:启动类:jar依赖:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xs... 阅读详情

常用的定时任务有两种:

  1. 基于注解
  2. 基于接口
基于注解@Scheduled

@Service
public class Scheduling1Service {

    //每2秒执行一次(若上次任务执行时间超过2秒,则立即执行,否则从上一个任务开始时算起2秒后执行本次任务)
    @Scheduled(fixedRate = 2000)
    public void test1() throws InterruptedException {
        Thread.sleep(1000L);//模拟定时任务执行耗费了1s
        Thread.sleep(3000L);//模拟定时任务执行耗费了3s
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(format.format(date)+"==>SchedulingService.test1 is called");
    }

    //上一个任务执行完2秒后,再执行本次任务
    @Scheduled(fixedDelay = 2000)
    public void test2() throws InterruptedException {
        Thread.sleep(3000L);//模拟定时任务执行耗费了3s
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(format.format(date)+"==>SchedulingService.test2 is called");
    }

    //支持corn表达式
    @Scheduled(cron = "0 0 1 * * ?")//每天凌晨1点执行
    public void test3() throws InterruptedException {
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(format.format(date)+"==>SchedulingService.test3 is called");
    }
}

注:不会写corn表达式的小伙伴,可以使用这个哦:https://cron.qqe2.com 会帮你自动生成corn表达式,且能检测你的表达式是否合法。非常好用!

以上三种是使用频次比较多的。因为不接受参数,主要用户定时同步第三方基础数据的业务场景。

使用@Scheduled需在pom中引用springboot的相关依赖,并在Application主入口函数中增加@EnableScheduling的注解。

基于接口形式的定时任务

基于注解的方式的任务配置起来很简单也很好用,但是由于不能传递参数,使用场景有限。那么就需要使用基于接口形式的定时任务了。

添加依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
@Service
public class Scheduling3Service implements SchedulingConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
        scheduledTaskRegistrar.addTriggerTask(
                new Runnable() {
                    @Override
                    public void run() {
                        System.out.println("cccccccc");
                    }
                },
                triggerContext -> {
                    return new CronTrigger("0/1 * * * * ? ").nextExecutionTime(triggerContext);
                }
        );
    }
}

以上就是两种常用的定时任务,小伙伴们,你,学废了吗?

更多java原创阅读:https://javawu.com

【Unity终极奥义】Unity打包去掉启动画面Logo,无需破解,一学就会 大家都知道Unity打包的应用在启动的时候都会有一个默认的UnityLogo。 而且这个Logo使用升级版和破解版都是可以随意清除和更换的。 但是Unity个人版是无法通过Unity的打包设置去进行更换的。 那今天就教大家一个使用个人普通版更换Unity启动画面Logo的方法!一起来看一下吧! 阅读详情

相关推荐

Veritas NetBackup 10.1 Windows安装指南:从账户配置到完整部署

本文详细介绍了Veritas NetBackup 10.1在Windows系统上的完整安装流程,从账户配置到部署验证。重点讲解了创建专用服务账户、安装组件选择、许可证输入等关键步骤,并提供了常见问题排查和进阶配置建议,帮助用户顺利完成企业级备份解决方案的部署。

weixin_26765287的博客 454

SpringBoot中定时任务踩坑,@Scheduled重复执行问题排查(看完直接破防)

今天再开发业务需求的过程中,需要用到定时任务,原本定的是每10分钟推送一次,可是当每次十分钟到的时候,定时任务就会推送多条!但是非常奇怪的是,本地调试的时候不会有问题,只有当你部署到到服务器上的时候才会暴露这个问题!!!!如图:这些消息都是一次性推送出来的,本来他们应该只有一条被推送出来的,可是现在他们却全都出来了,难道真是“一家人就要整整齐齐”吗?为什么本地调试我这样写和都只执行一次,而到线上的时候就会执行多次,有谁能知道这是为什么?

zhaoliubao1的博客 7078

Hyper-V显卡直通实战:手把手解决Windows 11虚拟机错误码43(附完整参数配置)

本文详细解析了在Windows 11 Hyper-V虚拟机中配置显卡直通时遭遇错误码43的根源,并提供了从环境检查、核心PowerShell命令(如Set-VMGpuPartitionAdapter)配置到虚拟机内驱动替换的完整实战解决方案,帮助用户彻底解决显卡驱动无法加载的问题。

weixin_29238147的博客 901

springboot开启定时任务

定时任务使用的 是spring自带的@Scheduled注解。

weixin_52831324的博客 1104

实用工具抓取youtube热门数据

YouTube作为全球第二大搜索引擎,2024年日均视频播放量突破50亿次,头部创作者单月广告分成可达百万美元量级。但对数据分析者而言,其反爬机制堪称业界最严: ‌反爬技术升级‌:Google部署的Botguard系统可检测异常流量,触发机制包括: 单IP每小时请求超过50次即封禁 检测Headless浏览器指纹(如Chrome的navigator.webdriver属性) 动态加载内容(如评论数据需滚动页面3次后加载) ‌数据价值维度‌:某MCN机构研究显示,前100热门视频的标题关键词复用率高达67%

26万+

深入解析STM32F40x CAN控制器的配置与优化

本文深入解析STM32F40x CAN控制器的配置与优化,涵盖基础工作模式、波特率计算、筛选器配置及中断管理等关键技术。通过实战案例和代码示例,帮助开发者高效配置CAN通信,提升工业控制系统的稳定性和性能。

weixin_26834815的博客 225

09 Springboot定时

Spring Boot定时任务 Scheduled定时任务器 是spring3.0以后自带的定时任务器 scheduled坐标 必须添加Scheduled坐标 完成依赖注入 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-su...

superchen98的博客 581

微信小程序反编译实战:用wxappUnpacker获取他人源码的完整流程(附常见报错解决方案)

本文详细解析了微信小程序反编译的完整流程,从缓存提取到源码重构,使用wxappUnpacker工具链实现逆向工程。涵盖环境配置、解密反编译、项目调试等关键步骤,并提供了常见报错解决方案,帮助开发者学习优秀实现方案或进行安全审计。

weixin_42706667的博客 469

spring boot定时任务——@scheduled

使用Spring提供的一个注解: @Schedule,开发简单,使用比较方便,适合非分布式项目。 每天凌晨0点到6点每一分钟执行一次。我是直接在controller该方法上加的,如果你要加在serviceImpl中的方法上加,需要加 常用的cron表达式: (1)0 0 2 1 * ? * 表示在每月的1日的凌晨2点调整任务 (2)0 15 10 ? * MON-FRI 表示周一到周五每天上午1...

凤凰涅槃 1922

解锁RK1126与SC132GS摄像头适配密码:技术与代码全解析

本文详细介绍了瑞芯微RK1126芯片与SC132GS摄像头的适配方法。首先分析了RK1126的四核Cortex-A7处理器、Mali-T860 GPU等硬件特性,以及SC132GS的130万像素、全局快门等技术参数。重点阐述了基于MIPI CSI接口的硬件连接原理和基于V4L2框架的软件驱动设计,并提供了完整的初始化、数据采集和图像处理代码实现。针对常见连接和图像质量问题给出了解决方案,展现了该组合在智能安防、工业检测等领域的应用潜力,为开发者提供了实用的技术参考。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1506

Android 系统低内存lowmemorykiller关于阈值修改 minfreeAbsKbytes优化

在系统rom定制化开发中,在对于运行内存ram 1G和2G的设备中,对于内存使用高峰期时,minfreeAbsKbytes优化很关键 调整合理的minfree,让内存合理的使用很关键,接下来分析相关功能的实现

安卓兼职framework和app工程师的博客 524

SpringBoot @Scheduled注解(cron、fixedRate、fixedDelay、initialDelay)各个参数区别

fixedDelay控制方法执行的间隔时间(毫秒),是以上一次方法执行完开始算起,如上一次方法执行阻塞住了,那么直到上一次执行完,并间隔给定的时间后,执行下一次。 fixedRate是按照一定的速率执行,是从上一次方法执行开始的时间算起,如果上一次方法阻塞住了,下一次也是不会执行,但是在阻塞这段时间内累计应该执行的次数,当不再阻塞时,一下子把这些全部执行掉,而后再按照固定速率继续执行。 cron表达式可以定制化执行任务,但是执行的方式是与fixedDelay相近的,也是会按照上一次方法结束时间开始算起。

qq_28016751的博客 1万+

风控域——决策引擎系统设计

本文详细介绍了风控决策引擎系统的设计与应用。决策引擎系统是一种智能化工具,可自动化、数据驱动地辅助或替代人工决策,广泛应用于金融、医疗、营销、风控等领域。文章阐述了决策引擎的核心功能,包括自动化决策、动态规则管理、实时处理和模型集成,以及系统组成,涵盖数据输入层、规则引擎和模型服务层。此外,还探讨了决策引擎的典型应用场景、技术架构、组件设计,以及风控决策引擎系统的技术方案、设计难点和重点。

庄小焱 3321

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Camera2Demo

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

听说可以十分钟掌握Spring Boot 集成定时任务、异步调用?

#Spring Boot 如何集成定时任务、异步调用 1. 定时任务 在项目开发中,经常需要定时任务来帮助我们来做一些内容,比如定时发送短信/站内信息、数据汇总统计、业务监控等,所以就要用到我们的定时任务,在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务 1.1 @Scheduled-fixedRate方式 1.1.1 pom配置 只需要引入 Spring Boot Starter jar包即可,Spring Boot Starter 包中已经

XiaoLin 778

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

springboot自带定时器实现定时任务的开启关闭以及定时时间可以配置

一、序言: 最近项目需要用到定时任务,需要完成一个定时功能。经过了解,项目中目前实现定时任务,一般有三种选择,一是用Java自带的timer类。稍微看了一下,可以实现大部分的指定频率的任务的调度(timer.schedule()),也可以实现关闭和开启(timer.cancle)。但是用其来实现某天的某个时间或者某月的某一天调度任务有点不方便。 二是采用Quartz 调度器实现。这是一个功能很...

老王的orange 9万+

IMSL CNL 7.0.0 (x86-64)Crack

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

spring boot中使用Schedule定时任务以及cron表达式

一、定时任务 1、在入口程序中添加@EnableScheduling注解 2、在一个类中的某个方法上,添加@Scheduled注解(其中cron = “0 0/1 * * * *”)代表一分钟执行一次 二、cron表达式 1、cron一共有7位,但是最后一位是年,可以留空,所以我们一般可以只写6位: 第一位,表示秒,取值0-59 第二位,表示分,取值0-59 第三位,表示小时,取值0-23 ...

CURD工程师 1万+

SpringBoot使用定时器(超简单)

Spring Boot使用@Scheduled定时器任务 摘要: Spring Boot之使用@Scheduled定时器任务 假设我们已经搭建好了一个基于Spring Boot项目,首先我们要在Application中设置启用定时任务功能@EnableScheduling。 启动定时任务 package com.scheduling; import org.springframew...

农民娃儿的博客 982

Cron表达式详解及示例

Cron表达式详解 文章目录Cron表达式详解参数说明格式特殊符号表示每位取值范围ex参考地址 参数说明 格式 秒 分 时 日 月 星期 年(可省略) 特殊符号表示 *表示匹配该域的任意值,假如在Minutes域使用*, 即表示每分钟都会触发事件 /表示起始时间开始触发,然后每隔固定时间触发一次,例如在Minutes域使用5/20,则意味着5分钟触发一次,而25,45等分别触发一次 -表示范围,...

沙码龙 1133

spring boot设置定时任务

使用定时任务完成一些业务逻辑,比如天气接口的数据获取,定时发送短信,邮件。以及商城中每天用户的限额,定时自动收货等等。定时器在项目中是常常会使用到的一个手段。 定时任务在Spring Boot中的集成 在启动类中加入开启定时任务的注解: 在SpringBoot中使用定时任务相当的简单。首先,我们在启动类中加入@EnableScheduling来开启定时任务。 之后我们直接创建实现定...

sheshouzuomeiyou的博客 3万+

SpringBoot 定时器/定时任务:在一个指定的周期时间内,执行某一项任务。

说多都是累,直接上代码:实现方式有三种(可能还有更多的实现,这三种只是楼主目前所知道的):    1、静态定时器,无法修改周期        @Configuration("myScheduled") @EnableScheduling public class ScheduledDemo{     //每10秒执行一次     @Scheduled(cron="0/10 * * * * ?") ...

menghunzhihun的博客 2万+

springboot的定时器,定的时间比方法执行完的时间要短会发生的事

闲着无聊,安装了个windows版的rabbitmq来玩了一些有意思的东西-邮件轰炸我自个(为啥不用短信?短信要钱啊) 要轰炸肯定要系统自动,那就把发送消息写在定时器里面,突然想到标题所说的,如果定的时间比方法执行完的时间要短会怎样?是放弃当前的方法,准时按照定时器定的时间继续重新执行方法,还是一定会执行完这个方法呢? 好玩的来了,上代码 @Component public class SendM...

a1430490717的博客 857

springboot实现定时器

1.创建springboot项目: 编写定时器,可以看下:springboot实现定时器 编写邮件服务类:可以看下:springboot发送邮件(1):发送简单邮件 2.启动类启用定时:   /** * 启动类 */ @SpringBootApplication //开启定时 @EnableScheduling public class Application { publ...

小码蚁 1万+

SpringBoot中使用@scheduled定时执行任务需要注意的坑

要注意什么坑 不绕弯子了,直接说这个坑是啥: SpringBoot使用@scheduled定时执行任务的时候是在一个单线程中,如果有多个任务,其中一个任务执行时间过长,则有可能会导致其他后续任务被阻塞直到该任务执行完成。也就是会造成一些任务无法定时执行的错觉 可以通过如下代码进行测试: @Scheduled(cron = "0/1 * * * * ? ") public void ...

业精于勤,荒于嬉;行成于思,毁于随 5万+

定时任务每隔10分钟

0 */10 * * * 0 0/10 * * * 区别:第一个表示服务启动后每10分钟执行一次;第二个表示服务启动后

wanyu_123的博客 3万+

springboot 定时器执行时间超过定时器定时时间会发生什么

 定时器执行时间超过定时器定时时间会发生什么,突然发现这个问题,写个方法看看 /** * 每隔一小时循环退款 */ @Scheduled(cron = "0 0 0/1 * * ?") @Scheduled(cron="0/1 * * * * ? ") public void test(){ try { Thread.currentThread().slee...

atmknight的博客 6135
上一篇: 如何修改代码又不违背开闭原则呢?看这里
下一篇: 配置文件这样写,多环境自由切换
大盛玩java
博客等级 码龄5年 0粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值