当前位置: 首页 > news >正文

阿里巴巴网站怎么做全屏大图学校网站开发与实现的解决思路

阿里巴巴网站怎么做全屏大图,学校网站开发与实现的解决思路,自己做网站怎么让字体居中,江苏省住房建设厅网站Springboot整合Redission分布式锁 引言#xff1a;实际项目中#xff0c;我们经常会遇到一些需要考虑使用分布式锁的场景#xff0c;以防止页面重复请求或者多系统之间相互重复调用的产生业务偏差的问题#xff1b; 例如#xff1a; 1.并发的场景下#xff0c;生成订单需…Springboot整合Redission分布式锁 引言实际项目中我们经常会遇到一些需要考虑使用分布式锁的场景以防止页面重复请求或者多系统之间相互重复调用的产生业务偏差的问题 例如 1.并发的场景下生成订单需要进行使用分布式锁来锁定商品库存避免出现超卖情况。 2.定时任务部署多个服务存在某些任务被同时执行的情况 一、springboot引入redission依赖 !-- redis 分布式锁 --dependencygroupIdorg.redisson/groupIdartifactIdredisson/artifactIdversion3.5.0/version/dependency二、配置redis链接信息实际各配置信息根据项目具体情况而定 ##默认密码为空 redis:host: 127.0.0.1port: 6379jedis:pool:#连接池最大连接数使用负值表示没有限制max-active: 100# 连接池中的最小空闲连接max-idle: 10# 连接池最大阻塞等待时间使用负值表示没有限制max-wait: 100000timeout: 5000database: 1三、RedissonClient客户端配置单机模式 import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;/*** 单机模式分布式锁配置*/Configuration public class RedissionConfig {Value(${redis.host})private String redisHost;Value(${redis.port})private String redisPort;Value(${redis.database})private int database;Bean(destroyMethod shutdown)public RedissonClient redissonClient() {Config config new Config();config.useSingleServer().setAddress(redis:// redisHost : redisPort).setDatabase(database);return Redisson.create(config);} }四、测试 4.1 lockTest1方法对锁进行锁定让现场睡眠1分钟模拟业务一直占用锁的场景 4.2 lockTest2 在业务1执行时候尝试去获取锁看是否能获取到锁同时等30秒后锁过期再去获取锁是否可以正常获取到锁 Resourceprivate RedissonClient redissonClient;ApiOperation(value 分布式可重入锁测试1, notes 分布式锁测试1)PostMapping(/lockTest1)Result lockTest1(RequestBody RedisRequestDto dto){RLock lock redissonClient.getLock(dto.getKey());String message ;try {// lock.lock(); 会有看门狗机制默认30秒 // lock.lock();// 此处采用手动设置过期时间不会触发看门狗机制boolean locked lock.tryLock(30, 60, TimeUnit.SECONDS);if(locked){message lockTest1 锁成功了;log.info(message);}else {message lockTest1 1锁失败了;log.info(message);}Thread.sleep(60000);} catch (InterruptedException e) {e.printStackTrace();}finally {if(Objects.nonNull(lock) lock.isHeldByCurrentThread()){log.info({}锁被释放,dto.getKey());lock.unlock();}}return Result.ok(message);}ApiOperation(value 分布式可重入锁测试2, notes 分布式锁测试2)PostMapping(/lockTest2)Result lockTest2(RequestBody RedisRequestDto dto){RLock lock redissonClient.getLock(dto.getKey());try {boolean isLocked lock.isLocked();if(isLocked){log.info({}锁被占用请稍后,dto.getKey());return Result.ok(锁占用请稍后);}else {log.info({}锁未占用继续执行,dto.getKey());return Result.ok(锁未占用继续执行);}} catch (Exception e) {e.printStackTrace();}finally {if(Objects.nonNull(lock) lock.isHeldByCurrentThread()){lock.unlock();}}return Result.ok();}测试结果 请求参数如下 1.lockTest1 执行以后我们可以看到有在db1中有一条记录同时返回锁成功 2.lockTest2 执行时候就是锁占用证明“test_lock”已经被占用无法获取 3.等待30秒以后test_lock锁自动过期再次执行lockTest2可以正常获取到锁 通过日志我们也能看出整个锁的锁定和释放的情况 2024-01-15 15:15:13.560 INFO 191576 --- [nio-1012-exec-1] c.s.house.controller.RedisController : lockTest1 锁成功了 2024-01-15 15:15:16.960 INFO 191576 --- [nio-1012-exec-3] c.s.house.controller.RedisController : test_lock锁被占用请稍后 2024-01-15 15:16:24.566 INFO 191576 --- [nio-1012-exec-5] c.s.house.controller.RedisController : test_lock锁未占用继续执行
http://www.pierceye.com/news/756495/

相关文章:

  • 电大形考任在哪个网站做旺道seo优化软件怎么用
  • 新网 网站备案好的作文网站
  • 网站建设技术外包深圳建设公司网站
  • 做旅游网站的数据怎么来垦利网站设计
  • 附近那里有做网站的微信公众平台注册官网
  • 雏鸟短视频app软件下载网站网站建设心得体会500字
  • 权威发布型舆情回应大连网站优化多少钱
  • 怎么做网站步骤免费的怎么用虚拟主机做网站步骤
  • 网站建设精品课程南昌企业网站建设哪家好
  • 网站空间不够用怎么办电子商务公司名字
  • 策划方案网站wordpress设置视频图片
  • 餐饮设计网站有哪些做副业的网站
  • 如何建设一个电子商务网站四川网站建设电话
  • 网站制作学习学网站开发顺序
  • 外语网站建设怎么知道网站的ftp
  • 苏州专业做网站的公司有哪些网络机柜定制
  • 提供服务的网站免费的进销存软件哪个简单好用
  • 长沙县政务网站网络公司名字大全寓意
  • 网站后台凡科建设有做网站维护的
  • 搭建网站需要什么软件上海在线
  • led灯外贸网站建设网站代码怎么优化
  • 网站建设维护什么意思江苏网络推广专员
  • 潍坊网站开发asp培训珠海市网站建设公司
  • 用什么做响应式网站建行个人余额查询网站
  • 做网站网站代理怎么找客源企业团建公司
  • 电子商务网站开发实战济南兼职做网站
  • 怎样创建网站视频学历提升的重要性
  • 百度搜索引擎录入网站1_ 掌握网站开发的基本流程 要求:熟悉网站开发与设计的基本流程.
  • 广州做网站建设如何在别人网站挂黑链
  • 宁德北京网站建设任丘建设银行网站