SpringBoot2.1.9 分布式锁ShedLock
一、分布式锁配置
(1)redis锁
pom.xml
<dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>2.5.0</version>
</dependency><dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-provider-redis-spring</artifactId><version>2.5.0</version>
</dependency>
自动配置
@Configuration
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
public class DataSourceConfig {@Beanpublic LockProvider scheduledLockConfiguration(@Autowired RedisConnectionFactory connectionFactory) {return new RedisLockProvider(connectionFactory);}}
(2)数据库锁
pom.xml
<dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>0.16.1</version>
</dependency><dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-provider-jdbc-template</artifactId><version>0.16.1</version>
</dependency>
自动配置
@Configuration
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
public class DataSourceConfig {@Beanpublic scheduledLockConfiguration(@Autowired DataSource dataSource) {return new JdbcTemplateLockProvider(dataSource);}}
二、定时任务配置
@Component
public class CronTask {@Scheduled(cron="0 0/1 * * * ?")@SchedulerLock(name = "test-lock:testMethod", lockAtMostFor = 3 * 60 * 1000, lockAtLeastFor = 30 * 1000)public void testMethod(){//do something}}
SpringBoot2.1.9 分布式锁ShedLock相关推荐
- SpringBoot2.1.9 分布式锁ShedLock不执行坑
一.起由 @Configuration @EnableScheduling @EnableSchedulerLock(defaultLockAtMostFor = "PT30S") ...
- redis多服务器共享_基于redis和shedlock实现分布式锁(超简单)
一.背景 线上部署了两台服务器,通过nginx轮询的方式进行负载均衡.但是这样存在一个问题同一个用户的session共享问题.你或许会说,使用ipHash模式就可以解决session共享的问题,是的确 ...
- 阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办
面试官:你们系统是怎么实现分布式锁的? 我:我们使用了redis的分布式锁.具体做法是后端接收到请求后加入一个分布式锁,如果加锁成功,就执行业务,如果加锁失败就等待锁或者拒绝请求.业务执行完成后释放锁 ...
- Redis分布式锁—SETNX+Lua脚本实现篇
前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...
- 万字长文!不为人所知的分布式锁实现全都在这里了
1. 引入业务场景 首先来由一个场景引入: 最近老板接了一个大单子,允许在某终端设备安装我们的APP,终端设备厂商日活起码得几十万到百万级别,这个APP也是近期产品根据市场竞品分析设计出来的,几个小码 ...
- 万字长文!分布式锁的实现全都在这里了
引入业务场景 分布式锁家族成员介绍 分布式锁成员实现原理剖析 最后的总结 1.引入业务场景 首先来由一个场景引入: 最近老板接了一个大单子,允许在某终端设备安装我们的APP,终端设备厂商日活起码得几十 ...
- 一个项目部署多个节点会导致锁失效么_不为人知的分布式锁实现,全都在这里了
1引入业务场景 首先来由一个场景引入: 最近老板接了一个大单子,允许在某终端设备安装我们的APP,终端设备厂商日活起码得几十万到百万级别,这个APP也是近期产品根据市场竞品分析设计出来的,几个小码农通 ...
- Mall商城的高级篇的开发(三)缓存与分布式锁
缓存 在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快.通过缓存,可以高效地重用之前检索或计算的数据. 为什么要使用 ...
- springboot 集成redission分布式锁
Springboot整合Redisson 锁 一.依赖 <dependency><groupId>org.redisson</groupId><artifac ...
最新文章
- POJ 1961 KMP(当前重复次数)
- this指针用法详解
- 能利用计算机来模拟某种真实的实验现象,自然现象或社会现象的课件是,幼儿园课件制作教案...
- Servlet的文件上传
- 最详细的R-CNN论文笔记
- Python 列表 append()函数使用详解
- oninput和onpropertychange以及其兼容处理
- (已解决)报错:collect2 error ld returned 1 exit status
- 纵享丝滑滑动切换的周月日历,水滴效果,可高度定制,仿小米日历
- Git的基础用法总结
- NVIDIA CUDA 高度并行处理器编程(九):并行模式:稀疏矩阵-向量乘法
- 我写的阿拉伯数字转中文大写的一个方法
- 记录:删除鼠标右键的某个“流氓”选项
- 短视频app开发:如何实现视频直播功能
- 中盈Zonewin NX-1900 打印机驱动
- 《第一堂棒球课》:王牌二垒手·棒球4号位
- 阿里聚安全发布 企业可享淘宝同款防护
- 安装win7激活提示0x80072F8F
- zxing生成二维码及解析二维码
- python数组实现差分操作:后一项减去前一项,两项作差
热门文章
- [mybatis]动态sql_sql_抽取可重用的sql片段
- 创建型模式——原型模式
- win10 64位操作系统安装mysql_win10,64位操作系统安装mysql-8.0.16经验总结(图文详细,保证一次安装成功)...
- 得到选择框句柄 怎么操作_知道借名买房有风险,只能选择借名买房该怎么操作?...
- 6-23 分离链接法的删除操作函数 (20 分)
- CF1486D Max Median
- [蓝桥杯2020国赛]游园安排
- 牛客题霸 [有关阶乘的两个问题1] C++题解/答案
- [TJOI2011] 卡片(网络流 + 质因子优化建图)
- [2020-11-23 contest]图(dfs剪枝),劫富济贫(字典树),小A的树(树形DP),游戏(贪心/斜率优化)