最新要闻
- 今日热搜:开放中国依然是外商投资高地
- 每日动态!晋升第一人口大国后 印度将成为全球第一大手机市场:多谢苹果
- 不是录播!梅西即将在淘宝开启首次直播
- 华为又背锅?理想粉丝暗指华为发动舆论攻击:李想出面澄清
- 亚运会倒计时101天!杭州开通“亚运号”定制专列
- 国内最畅销SUV排名出炉:特斯拉Model Y反超比亚迪宋Plus拿下第一
- 让电池新规为电动自行车加把“安全锁” 全球热点评
- 全球动态:21℃室温超导成果被美院士宣称复现!南大教授:有3点质疑
- 全球报道:吉利高管评理想学华为:华为是时代的产物 但时代变了
- 全球今日报丨Vision Pro商标被华为注册!专家:苹果要么求华为和解 要么中国市场改名
- 王鸿薇反击林飞帆退选还推责任 毫无担当 每日视点
- 快看:0-500公里仅需20.16秒!布加迪火流星正式亮相勒芒赛场
- 锐龙7 7800X3D搭配A620主板实测:游戏性能依旧胜过i9-13900KS
- 能打过理想L7?丰田新款汉兰达上市:26.88万起-新资讯
- 焦点热讯:Nothing Phone (2) 定档7月11日:比亚迪代工
- 世界热讯:无惧A卡狠降价!英伟达RTX 4060国内上市时间曝光:2399元秒抢光?
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球快资讯丨Springboot定时任务集成shedLock锁
0、写在前面
最近在项目开发过程中,涉及到定时任务的编写,定时任务大家都知道,在多服务器部署时,为了防止同一时间同一任务多次执行的问题,通常需要使用分布式定时任务进行处理,这部分对应的框架也很多,例如:xxl-job,power-job,elastic-job,但是由于考虑到当前所负责开发的项目体量,感觉使用上面所提到的分布式定时任务框架太过于繁重,所以,这里就使用了spring提供的scheduler定时任务注解方式开发,虽然此种方式开发简便,但是同一时间同一任务多次执行的问题还是存在的,因此为了解决此问题,这里便引入了shedlock锁组件。
关于shedlock,这里机翻了官网的一段说明,仅供简单介绍,详细可参看官网介绍(官网地址:https://github.com/lukas-krecan/ShedLock),官网说,shedlock只做一件事,就是确保计划任务最多同时执行一次,如果正在一个节点上执行任务,它将获取一个锁,以防止从另一个节点(或线程)执行相同任务。请注意,过去一个任务已在一个节点上执行,则其他节点上的执行不会等待,只会跳过它;目前支持Mongo、JDBC数据库、redis、hazelcast或zookeeper等存储,shedlock不是分布式调度框架,它只是一个锁!!!
【资料图】
1、版本说明
Spring Cloud Alibaba版本:2022.0.0.0-RC1Springboot版本:3.0.0jdk版本:17.0.6ShedLock版本:5.3.0mysql版本:8.0.30
2、ShedLock使用
由于项目使用的数据库为MySQL数据库,所以这里使用了shedlock-jdbcTemplate方式,关于其他存储方式的使用可以参看官网(官网地址:https://github.com/lukas-krecan/ShedLock)
2.1、创建数据库
CREATE TABLE shedlock(name VARCHAR(64) NOT NULL COMMENT "锁名称", lock_until TIMESTAMP(3) NOT NULL COMMENT "释放锁时间", locked_at TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT "获取锁时间", locked_by VARCHAR(255) NOT NULL COMMENT "锁提供者", PRIMARY KEY (name) );
官网说明:
2.2、pom依赖
5.3.0 net.javacrumbs.shedlock shedlock-core ${shedlock.version} net.javacrumbs.shedlock shedlock-spring ${shedlock.version} net.javacrumbs.shedlock shedlock-provider-jdbc-template ${shedlock.version} spring-jdbc org.springframework org.springframework spring-jdbc 6.0.6
说明:
这里单独引入spring-jdbc依赖的原因如下:
由于Springboot 3.0.0版本使用的Spring 6.0.2版本在针对数据表中存在数据插入时,会报Duplicate key violation gets translated to DataIntegrityViolationException instead of DuplicateKeyException异常(issue地址:https://github.com/spring-projects/spring-framework/issues/29511),导致shedlock执行时,报类似异常,针对此问题,spring官方也进行了修复(https://github.com/spring-projects/spring-framework/releases/tag/v6.0.3),但是由于项目依赖管理的父pom定义了spring的版本,这里不方便修改父pom的依赖信息,所以就在项目中单独添加了spring-jdbc的依赖,已解决此异常。异常信息如下:
Spring官方修复信息:
2.3、添加配置类
@Configurationpublic class SchedulerLockConfig { @Bean public LockProvider lockProvider(DataSource dataSource) { return new JdbcTemplateLockProvider( JdbcTemplateLockProvider.Configuration.builder() .withJdbcTemplate(new JdbcTemplate(dataSource)) .build() ); }}
2.4、启动类配置
在Springboot启动类上添加如下注解:
@EnableScheduling@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
说明:
defaultLockAtMostFor为锁默认的最大锁定时间,可以根据需要赋值,其中S为秒,M为分钟,H为小时,D为天,PT为ISO-8601期限格式,这部分可以参看Duration.parse()文档
2.5、定时任务方法配置
import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;...@Scheduled(cron = "0 */2 * * * ?")@SchedulerLock(name = "scheduledTaskName", lockAtLeastFor = "PT60S", lockAtMostFor = "PT60S")@Transactional(rollbackFor = Exception.class)public void scheduledTask() { // 代码省略......}
shedlock数据表数据:
2.6、注解说明
@SchedulerLock:
使用此注解的方法被锁定,通过指定锁的名称name属性(锁名称唯一),保证同一时间只能执行一个任务
关于lockAtLeastFor、lockAtMostFor属性说明:
当第一个微服务执行定时任务的时候,会将此定时任务进行锁操作,然后其他的定时任务就不会再执行,锁操作有一定的时长,超过这个时长以后,锁释放,然后所有的定时任务进行争抢下一个定时任务的执行权利,如此循环。其中两个配置lockAtMostFor和lockAtLeastFor,保证了在一个定时任务的区间内只有一个定时任务在执行,同时也保证了即便是其中的一个定时任务挂掉了,到一定的时间以后,锁也会释放,其他的定时任务依旧会进行执行权的争夺,执行定时任务。
关键词:
全球快资讯丨Springboot定时任务集成shedLock锁
今日热搜:开放中国依然是外商投资高地
每日动态!晋升第一人口大国后 印度将成为全球第一大手机市场:多谢苹果
不是录播!梅西即将在淘宝开启首次直播
华为又背锅?理想粉丝暗指华为发动舆论攻击:李想出面澄清
亚运会倒计时101天!杭州开通“亚运号”定制专列
国内最畅销SUV排名出炉:特斯拉Model Y反超比亚迪宋Plus拿下第一
天天快看点丨大文件上传功能在标签服务的简单应用和代码实现
Aurelia教程_编程入门自学教程_菜鸟教程-免费教程分享
让电池新规为电动自行车加把“安全锁” 全球热点评
全球动态:21℃室温超导成果被美院士宣称复现!南大教授:有3点质疑
全球报道:吉利高管评理想学华为:华为是时代的产物 但时代变了
全球今日报丨Vision Pro商标被华为注册!专家:苹果要么求华为和解 要么中国市场改名
王鸿薇反击林飞帆退选还推责任 毫无担当 每日视点
快看:0-500公里仅需20.16秒!布加迪火流星正式亮相勒芒赛场
锐龙7 7800X3D搭配A620主板实测:游戏性能依旧胜过i9-13900KS
能打过理想L7?丰田新款汉兰达上市:26.88万起-新资讯
焦点热讯:Nothing Phone (2) 定档7月11日:比亚迪代工
世界热讯:无惧A卡狠降价!英伟达RTX 4060国内上市时间曝光:2399元秒抢光?
理想汽车在重庆成立销售新公司,注册资本1000万|世界观天下
【世界速看料】读发布!设计与部署稳定的分布式系统(第2版)笔记02_停飞的代码异常
每日消息!经典webshell流量特征
华洋赛车北交所IPO成功过会:产品进入美国等50余个国家和地区 参与多项标准起草
全球规模最大!京东亚洲一号第100亿件智能包裹下线
短睡眠者可能“天赋异禀”:每天只需睡四五个小时
东莞暴雨 外卖小哥摔倒人车被水冲走:市民合力营救
最新快讯!特斯拉换电池价格曝光:最贵24.6万元一块 能买一辆奥迪
特斯拉Model Y在上海一大学完全拆解 沉浸教学“三电”原理
环球热点评!word文档如何打千分号 千分号在word上怎么打
数位 DP
【全球时快讯】深度学习应用篇-元学习[13]:元学习概念、学习期、工作原理、模型分类等
直播app源码技术之直播间内消息发送与接收的实现-世界今日讯
真实案例:Feign 切换 okhttp 无法生效,被老大骂的有点慌!
美国CPI进入下行趋势 黄金期货继续维持震荡 全球快看点
李想:很多友商那仨瓜俩枣的销量有啥可干的|天天速讯
男子熬夜喝冰镇饮料被送进ICU 医生从血里抽出一袋油脂:超标200倍 全球看点
环球讯息:西安现最牛司机 车尾标语3月撞7次!奔驰大G、奥迪都被撞过
世界新消息丨美国发布临时禁令:微软收购动视暴雪再次受阻
天津两处居民楼爆炸,致3死多伤!嫌疑人被抓获,作案工具是_环球新资讯
Canvas_绘制线段、圆形、文本、图像、视频、处理图像数据
【项目管理解决方案】上海道宁与Synami帮助您统一所有项目级别的信息,并使所有人轻松访问
Zabbix“专家坐诊”第195期问答汇总_当前看点
XenServer 7 GUI 虚拟机(VM)上的屏幕分辨率怎么提高? 环球简讯
入侵无线App盗用户资料 40岁男子被捕|观察
天天时讯:有无眉毛哪个更好看?哪吒CEO:“去掉眉毛”的哪吒GT将上市
携程梁建章建议:生三胎每月给五六千 给到18岁为止 速讯
15英寸MacBook Air首销破发!渠道价比官网便宜1000多|全球速看
新能源重卡 为何终将颠覆燃油重卡?
华为开发者大会2023早鸟票开售 498元起-全球最资讯
速讯:注意!绿心环线多路段将进行抓拍
MySQL性能分析及工具使用_今日热讯
演唱会买到“柱子票”,可以有更好的解决办法 全球要闻
PCIe 6.0还没用上:PCIe 7.0这就来了!x16速度高达512GB/s-世界滚动
175W功耗释放稳压64℃!铭瑄RTX 4060 Ti iCraft OC8G瑷珈显卡评测:二次元秀肌肉-环球观天下
为保护迎客松不让当地用户买木头、绿植?黄山回应
颠覆物理学!美国院士称复现室温超导 这还是骗局?
关注: 信用卡逾期停息挂账申请有什么条件?网贷逾期有什么影响?_当前热点
融创优化强制可转债方案 境外债重组方案获约近九成债权人支持
【读财报】游戏ETF透视:华夏基金规模、业绩领跑 华泰柏瑞、浦银安盛基金份额萎缩
南京十四所招聘官网_南京十四所_天天快资讯
20余省已公布高考查分时间:集中在6月下旬
卖1万多的15英寸MacBook Air 256GB SSD性能降级:不如上代
far away from home mp3下载百度网盘_far away from home歌词 天天短讯
95号汽油进入7元时代:国内油价接下来或还有降价空间!_天天信息
迷信进口屏幕电视:买回家发现大错特错了
HangFire进阶 当前资讯
ASP.NET Core MVC 从入门到精通之鉴权授权基础|今日最新
再也不用担心变量类型错误!学会JS中如何轻松检查变量类型_世界快看
武则天《升仙太子碑》 行草入碑敢为人先
中国特供显卡炒到20多万 英伟达赚麻了:有公司抢购70亿元订单-即时焦点
全球热头条丨大学期末划重点堪比发布会现场 学生举手机拍照 网友:很真实
科幻神作!三部《阿凡达》续集宣布推迟上映:第3部定档2025年
观天下!1152MB三级缓存天下无敌!AMD正式发布EPYC 9084X:96核心Zen4
突然!漫威多部新片宣布延期:《复仇者联盟5》《复仇者联盟6》再跳票1年_每日时讯
6月13日基金净值:信澳鑫安债券(LOF)最新净值1.009,跌0.1%
全球热点评!26岁零70天 Uzi成为LPL历史出场最年长的ADC选手
日本试运行核污染水排海设备 放射性物质将蔓延至全球海域
一男子挤痘后流血近1个小时 整个过程花费400抽面巾
梅西直播被吐槽上热搜前排 画面仅有一分钟引发大量网友不满
国产动漫《斗罗大陆2》即将开播 新史莱克七怪徐三石PV公布
埃兹拉·米勒出席《闪电侠》好莱坞活动 为官司缠身后的首次公开露面
云南金平县迎来蝴蝶集中羽化期 漫天飞舞犹如纷飞的落叶
辽宁一男子拔倒刺导致手指发炎感染 诊断为化脓性肉芽肿并缝了6针
为应对严重的黄牛倒卖问题 宝可梦社宣布新卡组将采用预购制
《碟中谍7》中国内地定档7月14日正式上映 汤姆·克鲁斯惊喜回归
海外最大论坛网站Reddit遭网友怒怼 或使第三方应用无法访问该服务
MySql的MVCC机制
.NET 使用ILPack组件将程序集保存成dll 世界球精选
蔚来全系降价3万!未必心甘情愿 但又无可奈何:被大众收购才是出路?
4990元起!雅迪冠能探索E10发布:2000W电机、极速62Km/h 最资讯
欠薪过亿!时隔两月 宝能汽车总部又被“堵门”_每日视讯
《守望2》新付费PVE让玩家不爽:暴雪你还有脸要钱呢? 热头条
李想:并没把国内友商放在眼里 理想的目标是干BBA
现代C++学习指南-方向篇|焦点速读
文心一言 VS 讯飞星火 VS chatgpt (40)-- 算法导论5.4 4题|天天快播
天天快资讯:澳科大领衔的研究团队开发出新型人工智能医疗诊断模型
M2 Ultra加持!苹果新款Mac Studio评测:5万元的恐怖生产力
当前速看:马斯克称人类已经是半机器人:大脑思维上传服务器可永生
世界热讯:Arm发布全新智能视觉参考设计 首次整合第三方IP核心
“上四休三”的老板后悔了 有员工选择混:这制度对国人不适合? 环球快消息