百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

Spring 中如何使用 @Scheduled 创建定时任务

yuyutoo 2024-10-12 00:05 10 浏览 0 评论

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。

放弃不难,但坚持很酷~

一、定时任务触发条件

1、在 Application 启动类上添加:@EnableScheduling

2、含定时方法的类上添加注解:@Component,该注解将定时任务类纳入 spring bean 管理。

3、在定时方法上写上:@Scheduled(cron = "0 0/1 * * * ?"),该 cron 表达式为每一分钟执行一次方法。

二、@Scheduled用法

1、fixedDelay

@Scheduled(fixedDelay = 5000)
public voidtestFixedDelay{
try {
log.info("当前时间:" + DateUtil.now);
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace;
}
}

每个任务延迟3秒,然后打印当前时间。

fixedDelay规律总结:

前一个任务执行结束后,再等待5秒,然后执行第二个任务。

2、fixedRate

@Scheduled(fixedRate = 5000)
public voidtestFixedRate{
try {
log.info("当前时间:" + DateUtil.now);
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace;
}
}

任务启动后,每隔5秒执行一次任务。

如果将延时时间修改为8秒,则输出间隔变为8秒,如下图所示:

fixedRate规律总结:

假如设置定时任务每5秒执行一次,如果前一个任务用时超过了5秒,则等前一个任务完成后就立刻执行第二次任务。如果前一个任务用时小于5秒,则等满足5秒以后,再执行第二次任务。

3、Corn表达式详解(常用)

Corn 表达式可用 秒、分、时、天、周、月、年来表示:

秒 分 时 天 周 月 年

0 * 14 * * ? * : 代表每天从14点开始,每一分钟执行一次。
0 0 14 * * ? * : 代表每天的14点执行一次任务。

可使用 Corn 在线生成表达式:http://cron.qqe2.com/,来检测 Cron 的合理性。

Corn 示例:每2分钟执行一次。

@Scheduled(cron = "0 0/2 * * * ?")
public voidtest {
int j = 0;
for (int i = 0; i < 10; i++) {
log.info("Scheduled测试");
j++;
log.info("j的值为:" + j);
try {
Thread.sleep(1000 * 20);
} catch (InterruptedException e) {
e.printStackTrace;
}
}
}

效果:

总结:

如上述代码所示,设置 test 方法每2分钟执行一次。但如果前一个任务执行时长超过了2分钟,则第二个任务会等待前一个任务完成后的一段时间后再执行第二个任务。

欢迎留言讨论

相关推荐

国产RISC-V终端Sipeed Lichee Console4A上架,1699元起

IT之家12月11日消息,国内著名开源硬件厂商Sipeed矽速科技推出RISC-V终端LicheeConsole4A,售价1699元(不带LM4A模块)-3299元。Li...

H3C交换机常用配置命令

1、配置主机名...

ThinkPad老版Bios中英文对应详解

ThinkPad老版Bios中文对应详解。解决方案:...

澳大利亚Console Connect与非洲数据中心达成战略合作,增强整个非洲的数据连接

据techafricanews网11月13日报道,在2024年非洲科技节上,澳大利亚ConsoleConnect与非洲数据中心共同宣布了一项具有里程碑意义的战略合作协议,该协议致力于提升非洲大陆关键...

多功能调焦 腾龙TAP-in Console延期发售

最新消息传出,腾龙TAP-inConsole(modeltap-01)多功能调焦器由于生产方面原因原本预计3月24日发售延迟至3月30日,腾龙的这款调焦器功能类似于适马的USBDock调焦底座,...

关于交换机上存在的不同接口介绍(一)

生活中常见的电子设备有很多,其中明交换机主要起到的是连接的作用,上面有非常多的接口,下面就一起来看看这些不同的接口作用是什么。1、RJ-45接口这是我们见的最多、应用最广的一种接口类型,它属于双绞线以...

颜值更高?微软新推精英版Xbox One手柄

本月,微软的XboxOne升级了更强大的版本——XboxOneEliteconsole(精英版?),升级版的控制手柄功能更强大,可以主导你的客厅;从曝光的图片上看得出,新版XboxOneE...

“全球首个”:Console Connect为全球物联网项目推出连接解决方案

据DevelopingTelecoms2月27日报道,在MWC2023上,全球网络即服务(NaaS)平台ConsoleConnect推出了“全球首个”私有连接解决方案,可帮助企业在全球范围内动态...

密码遗忘专题——Console口密码遗忘

如果忘记了Console口密码,用户可以通过以下两种方式来设置新的Console口密码:方法一:通过STelnet/Telnet登录设备修改Console口密码。...

为锐捷路由器交换机开启web和telnet,实现轻松管理

笔者上一篇文章写了关于锐捷二层交换机配置教程,那么接下来讲一下锐捷的路由交换设备配置web、telnet技巧。同样,今天的教程也是基于命令行,比较简单,适合新手小白进行学习。准备工作配置前准备:con...

C# - 类文件构成,C#基本语法,Console属性与方法 007

类文件(.cs)构成类文件主要分为引用命名空间与自己项目的命名空间...

Console OS系统帮你在PC上自由切换Windows和安卓应用

通过ConsoleOS你可以在你的PC上安装自己喜欢的安卓游戏,需要时之间切换回Windows进行其他工作,ConsoleOS能够完全利用你的PC硬件配置,该系统可以安装在PC的内置硬盘里,也可以...

交换机通过串口线console口登录设备

一、功能简介:PC端通过设备的Console口登录,实现对第一次上电的设备进行基本配置和管理。...

(每日持续更新)jdk api之Console基础、应用、实战

博主18年的互联网软件开发经验,从一名程序员小白逐步成为了一名架构师,我想通过平台将经验分享给大家,因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验,晚上进行用心精简、整...

KFC推出“真正的次世代主机”KFConsole!真4K/120帧

今天KFCGaming官方推特发布了一则“主机”宣传片,正式公布了旗下名为KFConsole的全新主机产品。并宣称:游戏的未来就在这里,介绍真正的次世代主机!根据官方介绍,本款KFC主机功能强大,支...

取消回复欢迎 发表评论: