@Scheduled

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

使用场景:注解在方法上

参数说明:常用参数

@Scheduled 参数说明

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

生成器工具地址-http://cron.qqe2.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表达式的方法,在项目首次启动后不会直接运行,而是等到执行周期才会执行

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

测试说明:

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

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

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

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

@Configuration
@EnableScheduling
public class SchedulingConfig implements SchedulingConfigurer {@Overridepublic 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();@Overridepublic Thread newThread(Runnable r) {Thread thread = new Thread(r);thread.setName("test-scheduler-" + counter.incrementAndGet());return thread;}});}}

@Scheduled 定时任务总结相关推荐

  1. Java Spring @Scheduled 定时任务crontab表达式设置

    Java Spring @Scheduled 定时任务crontab表达式设置 1. Cron详解 2. 例子 参考 1. Cron详解 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或 ...

  2. 【@Scheduled定时任务】

    1.SpringBoot项目的启动类上加@EnableScheduling注解,开启定时任务 @EnableScheduling @SpringBootApplication public class ...

  3. 【SpringBoot】十二、@Scheduled定时任务(源码)

    @Scheduled是Spring task的基于注解的使用方法.Spring task是spring自主开发的轻量级定时任务框架.但是本身不支持持久化,也没有推出官方的分布式集群模式,只能靠开发者在 ...

  4. @Async 异步任务自定义线程池的配置方法和 @Scheduled 定时任务自定义线程池的配置方式

    文章目录 一.定时和异步业务场景描述 二.定时调度任务的实现方式 三.定时调度任务的问题描述 四.定时调度多线程解决方案(方案一) 五.异步多线程程序实现方式 六.定时调度多线程解决方案(方案二) 一 ...

  5. 简易且详细的 Scheduled 定时任务开发实战

    Spring 定时任务Scheduled 开发 文章目录 一.前言 1.1 定时任务 1.2 开发环境 1.3 技术实现 二.创建包含WEB.xml 的Maven 项目 2.1 创建多模块项目task ...

  6. Spring @Scheduled定时任务动态修改cron参数

    Spring框架自3.0版本起,自带了任务调度功能,好比是一个轻量级的Quartz,而且使用起来也方便.简单,且不需要依赖其他的JAR包.秉承着Spring的一贯风格,Spring任务调度的实现同时支 ...

  7. 跨服务同步数据(MYSQL),@Scheduled定时任务,HttpClient分批发送数据,JSONobject,策略模式+简单工厂,异步@Async+CompletableFuture使用

    目录 1.实现远程post请求 下面首先创建HttpClient用来实现远程post请求 2.发送数据 接下来就是将获取的数据(SyncDataParam )通过http请求方式发送给另一个服务(ap ...

  8. @Scheduled 定时任务经验分享

    在开发中,有时候会遇到定时推送的需求,例如定时发送推送.定时发送邮件等等.SpringBoot为我们内置了定时任务,我们只需要一个注解就可以开启定时为我们所用了. 开启定时任务 在入口类LogAppl ...

  9. Spring task:annotation-driven配置之 @Scheduled定时任务的fixedRate,fixedDelay,cron执行差异

    从实现技术上来看,定时器分为三种: 1.Timer比较单一,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行,一般用的 ...

最新文章

  1. 字节老板在群里diss员工:上班时间聊游戏,工作很闲吗?员工回怼:查聊天记录,看聊天时间占工作时间百分比!网友:真·扁平化管理!...
  2. 一次Linux系统被***的分析过程
  3. 人月神话阅读笔记之一
  4. 寒假每日一题2022【week2 未完结】
  5. E:VUE 插件 开发与使用 (一)
  6. android studio新建layout,【Android Studio安装部署系列】十六、Android studio在layout目录下新建子目录...
  7. hive-jdbc/odbc的解读和看法
  8. import/export win7中电源计划
  9. GPS广播星历和精密星历的下载
  10. Spring Tool Suite 4(STS)的下载安装
  11. 全国地名联动选择的程序|地名三级联动(原创JS无数据库19K优化版)
  12. 定位误差的计算机械制造,机械制造技术基础定位误差分析和计算.pdf
  13. C语言中圆的周长怎么算,圆的周长公式 周长怎么算出来的
  14. iOS底层探索(十二)类的加载(中)
  15. linux中ping命令停不下来解决方案
  16. 【数理统计】概率统计
  17. pandas数据处理之合并与拼接
  18. 微信头像挂件来了,想在头像加什么就来加什么吧!
  19. 开源一个win10二十四节气壁纸自动更换的程序
  20. Android手机直播(三)声音采集

热门文章

  1. Unity 3D物体模型的透明和不透明实现
  2. 童言无忌之小瑈与甲虫
  3. 中移动MM商场全球首发《愤怒的小鸟中秋节版》
  4. GDPU C语言 天码行空12
  5. SQL开发与数据库管理笔记,看过的都说好!
  6. Unity UI优化策略
  7. 使用python .pcm音频文件多声道数据分离与转化为浮点数
  8. 获取DataGridView中的的选中行
  9. AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_id‘
  10. Python实现卡方检验和相关性分析