@Scheduled 定时任务总结

@Scheduled 定时任务总结Scheduled 作用 spring 定时器 定时执行一次或定时轮询执行一段代码 使用场景 注解在方法上参数说明 常用参数 Scheduled 参数说明 Stringcron cron 表达式定义了方法执行的时间规则 网上对这个的说明很多就不墨迹了 生成器工具地址 http cron e2 com LongfixedDel 定时任务每隔多久执行一次 单位是毫

@Scheduled

作用:spring定时器(定时执行一次或定时轮询执行一段代码)

使用场景:注解在方法上

参数说明:常用参数

@Scheduled 参数说明

String cron:cron表达式定义了方法执行的时间规则(网上对这个的说明很多就不墨迹了)

生成器工具地址-http://cron.e2.com/

Long fixedDelay:定时任务每隔多久执行一次,单位是毫秒,上一次任务结束后开始计算下次执行的时间。

例子:@Scheduled(fixedDelay = 1000 * 10) //10秒发送一次

······················scheduled1开始执行·······················2018-07-27 14:00:00

······················scheduled1结束执行·······················2018-07-27 14:00:05

······················scheduled2开始执行·······················2018-07-27 14:00:15

······················scheduled2结束执行·······················2018-07-27 14:00:20

······················scheduled3开始执行·······················2018-07-27 14:00:30

······················scheduled3结束执行·······················2018-07-27 14:00:35

 

Long fixedRate:与fixedDelay一样表示定时任务的执行时间间隔,不同的是fixedRate的不会受到上一次任务结束时间的影响

例子:@Scheduled(fixedRate = 1000 * 10) //10秒发送一次

······················scheduled1开始执行·······················2018-07-27 14:00:00

······················scheduled1结束执行·······················2018-07-27 14:00:05

······················scheduled2开始执行·······················2018-07-27 14:00:10

······················scheduled2结束执行·······················2018-07-27 14:00:15

······················scheduled3开始执行·······················2018-07-27 14:00:20

······················scheduled3结束执行·······················2018-07-27 14:00:25

 

Long initialDelay:项目启动后不马上执行定时器,根据initialDelay的值延时执行。

 

注意事项:

1.定时器的参数有两种写法是用cron表达式,或者使用fixedDelay、fixedRate等参数直接配置

需要注意的是 使用cron表达式的方法,在项目首次启动后不会直接运行,而是等到执行周期才会执行

而使用第二种方式的定时器方法,在项目启动成功后会马上开始执行一次,再按照时间周期执行。

测试说明:

使用第一种配置方式,项目启动后方法不会执行,而是等到执行周期到了才会执行方法

@Scheduled 定时任务总结

使用第二种参数方式的方法,项目启动成功后马上执行了一次

@Scheduled 定时任务总结

2.定时器默认为单线程,所以如果项目中使用多个定时器要配置线程池 

注意这里的@EnableScheduling,使用它来开启定时器注解

@Configuration @EnableScheduling public class SchedulingConfig implements SchedulingConfigurer { @Override public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { taskRegistrar.setScheduler(taskExecutor()); } @Bean(destroyMethod="shutdown") public Executor taskExecutor() { return Executors.newScheduledThreadPool(5 ,new ThreadFactory() { private final AtomicLong counter = new AtomicLong(); @Override public Thread newThread(Runnable r) { Thread thread = new Thread(r); thread.setName("test-scheduler-" + counter.incrementAndGet()); return thread; } }); } }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220532.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午8:16
下一篇 2026年3月17日 下午8:16


相关推荐

  • 安卓平台 使用Jword生成word文档到本地【亲测成功】

    安卓平台 使用Jword生成word文档到本地【亲测成功】2019 独角兽企业重金招聘 Python 工程师标准 gt gt gt

    2026年3月18日
    2
  • 代码注册广播需要调用registerReceiver()方法_设计一个注册页面register

    代码注册广播需要调用registerReceiver()方法_设计一个注册页面register前面我们介绍了Android系统的广播机制,从本质来说,它是一种消息订阅/发布机制,因此,使用这种消息驱动模型的第一步便是订阅消息;而对Android应用程序来说,订阅消息其实就是注册广播接收器,本文将探讨Android应用程序是如何注册广播接收器以及把广播接收器注册到哪里去的。     在Android的广播机制中,ActivityManagerService扮演着广播中心的角色,负责系统

    2025年11月1日
    4
  • 双非本科22届暑期实习,成功拿到B站、阿里实习offer[通俗易懂]

    双非本科22届暑期实习,成功拿到B站、阿里实习offer[通俗易懂]拼一把不一定成功,但是不试试看肯定没有结果!1.前言想写这篇文章很久了,也有粉丝留言、私信问我打卡系列怎么断更了这么多天(狗头保命),首先给大家解释一下最近为什么“失踪了”?由于近两周要入职,找租房,整理微信公众号,所以没多少时间写博客,今天难得闲下来,做一篇近期总结给大家。关于交流群:有粉丝私信,建议创建一个学习群,大家互相分享校招经验,学习心得(我因为怕管理群太麻烦,而一拖再拖,不过也好歹建群了),大家可以通过我的博客首页关注一波公众号:兴趣使然的草帽路飞去获取交流群和内推群群.

    2022年5月21日
    53
  • 怎么创建数据表_sqlserver创建表的sql语句

    怎么创建数据表_sqlserver创建表的sql语句知识点:数据库表的相关概念、创建数据库表的方法、设计数据库表、向数据库表中插入数据、建立不同数据库表之间的关系、删除数据库表。1、数据表相关的一些概念1.1数据库里的数据是如何保存的?数据库到底是怎么存储数据的?比如要把学生信息存储到数据库里,能把学生塞进数据库吗?肯定是把学生的数据信息抽象出来,把一些重要信息以文字或数字的形式保存到数据库中去。…

    2025年7月30日
    4
  • Xmind快捷键笔记

    Xmind快捷键笔记

    2022年6月5日
    28
  • 信号处理中包络是什么意思_重庆邮电大学复试通信原理

    信号处理中包络是什么意思_重庆邮电大学复试通信原理第一章绪论1.基带信号的定义基带信号是指信号的频谱从零频附近开始的,没有经过调制的信号2.什么是数字信号和模拟信号?二者的区别是什么?数字信号是信号参量的取值是离散的,模拟信号是信号参量的取值是连续的。区别是信号参量的取值是连续还是离散。3.什么是数字通信?描述数字通信系统的主要优缺点?数字通信就是用数字信号传输信息的通信系统。数字通信系统的优点有差错可控,抗干扰能力强,易于存储,处理和…

    2022年8月10日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号