当前位置: 首页 > 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.zqtcl.cn/news/756495/

相关文章:

  • 电子商务网站创业计划书后台管理系统登录
  • 蚂蚁建站网页传奇游戏单职业
  • 标准通网站建设广州 flash 网站
  • 怎么做游戏自动充值的网站淘宝购物平台
  • 免费帮助建站营销策略怎么写
  • 12380 举报网站建设优秀个人网站
  • 简洁网站模板素材用wordpress上传源砖
  • 高密做网站电影html网页模板设计素材
  • 湖北网络营销网站襄阳网站建设-飞鱼网络
  • 想更新公司网站怎么做关于网站开发的自我评价
  • 找建筑工作哪个网站好新增网站 备案
  • 格力网站的建设情况wordpress mysql 密码重置
  • 网站access数据怎么做高端品牌网站建设的目的
  • 外贸买家网站凯里网站建设流程
  • 网站一年要多少钱国外的建筑设计网站
  • 手游发号网站模板ic外贸网站建设
  • 珠海网站制作案例tp5 商城网站开发
  • 母婴用品网站建设规划上海市建设工程 安全协会网站
  • 做室内设计特别好的网站网站服务器租用恒创
  • 慕课网站开发文档wordpress上传到空间
  • 行业垂直网站开发漳州最便宜的网站建设价格
  • 高级网站设计效果图网站设计制作哪些
  • 惠山区住房和建设厅网站营销推广方式都有哪些
  • 做网贷网站多少钱wordpress首页短代码
  • 网站网格湖南网页
  • 做网站的知名品牌公司用ps切片做网站
  • 中学网站模板下载番禺外贸网站建设
  • 常州网站seo代理加盟郑州浩方网站建设智联招聘
  • 小型网站制作网站开发做什么费用
  • seo网站论文社交app开发公司