一、分布式锁配置

(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相关推荐

  1. SpringBoot2.1.9 分布式锁ShedLock不执行坑

    一.起由 @Configuration @EnableScheduling @EnableSchedulerLock(defaultLockAtMostFor = "PT30S") ...

  2. redis多服务器共享_基于redis和shedlock实现分布式锁(超简单)

    一.背景 线上部署了两台服务器,通过nginx轮询的方式进行负载均衡.但是这样存在一个问题同一个用户的session共享问题.你或许会说,使用ipHash模式就可以解决session共享的问题,是的确 ...

  3. 阿里二面:redis分布式锁过期了但业务还没有执行完,怎么办

    面试官:你们系统是怎么实现分布式锁的? 我:我们使用了redis的分布式锁.具体做法是后端接收到请求后加入一个分布式锁,如果加锁成功,就执行业务,如果加锁失败就等待锁或者拒绝请求.业务执行完成后释放锁 ...

  4. Redis分布式锁—SETNX+Lua脚本实现篇

    前言 平时的工作中,由于生产环境中的项目是需要部署在多台服务器中的,所以经常会面临解决分布式场景下数据一致性的问题,那么就需要引入分布式锁来解决这一问题. 针对分布式锁的实现,目前比较常用的就如下几种 ...

  5. 万字长文!不为人所知的分布式锁实现全都在这里了

    1. 引入业务场景 首先来由一个场景引入: 最近老板接了一个大单子,允许在某终端设备安装我们的APP,终端设备厂商日活起码得几十万到百万级别,这个APP也是近期产品根据市场竞品分析设计出来的,几个小码 ...

  6. 万字长文!分布式锁的实现全都在这里了

    引入业务场景 分布式锁家族成员介绍 分布式锁成员实现原理剖析 最后的总结 1.引入业务场景 首先来由一个场景引入: 最近老板接了一个大单子,允许在某终端设备安装我们的APP,终端设备厂商日活起码得几十 ...

  7. 一个项目部署多个节点会导致锁失效么_不为人知的分布式锁实现,全都在这里了

    1引入业务场景 首先来由一个场景引入: 最近老板接了一个大单子,允许在某终端设备安装我们的APP,终端设备厂商日活起码得几十万到百万级别,这个APP也是近期产品根据市场竞品分析设计出来的,几个小码农通 ...

  8. Mall商城的高级篇的开发(三)缓存与分布式锁

    缓存 在程序中,缓存是一个高速数据存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快.通过缓存,可以高效地重用之前检索或计算的数据. 为什么要使用 ...

  9. springboot 集成redission分布式锁

    Springboot整合Redisson 锁 一.依赖 <dependency><groupId>org.redisson</groupId><artifac ...

最新文章

  1. POJ 1961 KMP(当前重复次数)
  2. this指针用法详解
  3. 能利用计算机来模拟某种真实的实验现象,自然现象或社会现象的课件是,幼儿园课件制作教案...
  4. Servlet的文件上传
  5. 最详细的R-CNN论文笔记
  6. Python 列表 append()函数使用详解
  7. oninput和onpropertychange以及其兼容处理
  8. (已解决)报错:collect2 error ld returned 1 exit status
  9. 纵享丝滑滑动切换的周月日历,水滴效果,可高度定制,仿小米日历
  10. Git的基础用法总结
  11. NVIDIA CUDA 高度并行处理器编程(九):并行模式:稀疏矩阵-向量乘法
  12. 我写的阿拉伯数字转中文大写的一个方法
  13. 记录:删除鼠标右键的某个“流氓”选项
  14. 短视频app开发:如何实现视频直播功能
  15. 中盈Zonewin NX-1900 打印机驱动
  16. 《第一堂棒球课》:王牌二垒手·棒球4号位
  17. 阿里聚安全发布 企业可享淘宝同款防护
  18. 安装win7激活提示0x80072F8F
  19. zxing生成二维码及解析二维码
  20. python数组实现差分操作:后一项减去前一项,两项作差

热门文章

  1. [mybatis]动态sql_sql_抽取可重用的sql片段
  2. 创建型模式——原型模式
  3. win10 64位操作系统安装mysql_win10,64位操作系统安装mysql-8.0.16经验总结(图文详细,保证一次安装成功)...
  4. 得到选择框句柄 怎么操作_知道借名买房有风险,只能选择借名买房该怎么操作?...
  5. 6-23 分离链接法的删除操作函数 (20 分)
  6. CF1486D Max Median
  7. [蓝桥杯2020国赛]游园安排
  8. 牛客题霸 [有关阶乘的两个问题1] C++题解/答案
  9. [TJOI2011] 卡片(网络流 + 质因子优化建图)
  10. [2020-11-23 contest]图(dfs剪枝),劫富济贫(字典树),小A的树(树形DP),游戏(贪心/斜率优化)