@Scheduled 定时任务总结
@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 定时任务总结相关推荐
- Java Spring @Scheduled 定时任务crontab表达式设置
Java Spring @Scheduled 定时任务crontab表达式设置 1. Cron详解 2. 例子 参考 1. Cron详解 Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或 ...
- 【@Scheduled定时任务】
1.SpringBoot项目的启动类上加@EnableScheduling注解,开启定时任务 @EnableScheduling @SpringBootApplication public class ...
- 【SpringBoot】十二、@Scheduled定时任务(源码)
@Scheduled是Spring task的基于注解的使用方法.Spring task是spring自主开发的轻量级定时任务框架.但是本身不支持持久化,也没有推出官方的分布式集群模式,只能靠开发者在 ...
- @Async 异步任务自定义线程池的配置方法和 @Scheduled 定时任务自定义线程池的配置方式
文章目录 一.定时和异步业务场景描述 二.定时调度任务的实现方式 三.定时调度任务的问题描述 四.定时调度多线程解决方案(方案一) 五.异步多线程程序实现方式 六.定时调度多线程解决方案(方案二) 一 ...
- 简易且详细的 Scheduled 定时任务开发实战
Spring 定时任务Scheduled 开发 文章目录 一.前言 1.1 定时任务 1.2 开发环境 1.3 技术实现 二.创建包含WEB.xml 的Maven 项目 2.1 创建多模块项目task ...
- Spring @Scheduled定时任务动态修改cron参数
Spring框架自3.0版本起,自带了任务调度功能,好比是一个轻量级的Quartz,而且使用起来也方便.简单,且不需要依赖其他的JAR包.秉承着Spring的一贯风格,Spring任务调度的实现同时支 ...
- 跨服务同步数据(MYSQL),@Scheduled定时任务,HttpClient分批发送数据,JSONobject,策略模式+简单工厂,异步@Async+CompletableFuture使用
目录 1.实现远程post请求 下面首先创建HttpClient用来实现远程post请求 2.发送数据 接下来就是将获取的数据(SyncDataParam )通过http请求方式发送给另一个服务(ap ...
- @Scheduled 定时任务经验分享
在开发中,有时候会遇到定时推送的需求,例如定时发送推送.定时发送邮件等等.SpringBoot为我们内置了定时任务,我们只需要一个注解就可以开启定时为我们所用了. 开启定时任务 在入口类LogAppl ...
- Spring task:annotation-driven配置之 @Scheduled定时任务的fixedRate,fixedDelay,cron执行差异
从实现技术上来看,定时器分为三种: 1.Timer比较单一,这个类允许你调度一个java.util.TimerTask任务.使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行,一般用的 ...
最新文章
- 字节老板在群里diss员工:上班时间聊游戏,工作很闲吗?员工回怼:查聊天记录,看聊天时间占工作时间百分比!网友:真·扁平化管理!...
- 一次Linux系统被***的分析过程
- 人月神话阅读笔记之一
- 寒假每日一题2022【week2 未完结】
- E:VUE 插件 开发与使用 (一)
- android studio新建layout,【Android Studio安装部署系列】十六、Android studio在layout目录下新建子目录...
- hive-jdbc/odbc的解读和看法
- import/export win7中电源计划
- GPS广播星历和精密星历的下载
- Spring Tool Suite 4(STS)的下载安装
- 全国地名联动选择的程序|地名三级联动(原创JS无数据库19K优化版)
- 定位误差的计算机械制造,机械制造技术基础定位误差分析和计算.pdf
- C语言中圆的周长怎么算,圆的周长公式 周长怎么算出来的
- iOS底层探索(十二)类的加载(中)
- linux中ping命令停不下来解决方案
- 【数理统计】概率统计
- pandas数据处理之合并与拼接
- 微信头像挂件来了,想在头像加什么就来加什么吧!
- 开源一个win10二十四节气壁纸自动更换的程序
- Android手机直播(三)声音采集
热门文章
- Unity 3D物体模型的透明和不透明实现
- 童言无忌之小瑈与甲虫
- 中移动MM商场全球首发《愤怒的小鸟中秋节版》
- GDPU C语言 天码行空12
- SQL开发与数据库管理笔记,看过的都说好!
- Unity UI优化策略
- 使用python .pcm音频文件多声道数据分离与转化为浮点数
- 获取DataGridView中的的选中行
- AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_id‘
- Python实现卡方检验和相关性分析