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

汽车网有哪些网站大全线上营销活动主要有哪些

汽车网有哪些网站大全,线上营销活动主要有哪些,扬州网站开发公司电话,网站建设法律背景 操作涉及一批数据,如订单,可能存在多个场景下操作,先使用读锁,从redis缓存中获取操作中数据 比如 关闭账单, 发起调账, 线下结算, 合并支付 先判断当前操作的数据,是否在…

背景

操作涉及一批数据,如订单,可能存在多个场景下操作,先使用读锁,从redis缓存中获取操作中数据

比如

关闭账单,
发起调账,
线下结算,
合并支付

先判断当前操作的数据,是否在其他地方操作中(在redis set结构中),

存在:提示稍后再操作,业务流程终止。

不存在:把当前操作数据放入redis 缓存中(同时这个动作加写锁),在加写锁的过程中,是不允许其他读锁读取数据的

然后,进行业务逻辑处理

什么把缓存中数据删除呢?


操作完成,删除缓存中数据(同时加写锁)

    /*** 删除操作完成的账单号缓存** @param billNoList*/public void removeInOperationBillNoCache(List<String> billNoList) {log.info("removeInOperationBillNoCache--->billNoList:{}", JSON.toJSONString(billNoList));RReadWriteLock readWriteLock = redissonClient.getReadWriteLock(Constant.LEASE_BILL_IN_OPERATION_KEY);RLock writeLock = readWriteLock.writeLock();writeLock.lock();try {billNoList.forEach(billNo -> redisService.srem(Constant.LEASE_BILL_IN_OPERATION_CACHE, billNo));} finally {writeLock.unlock();}}

 判断及读写锁逻辑

    /*** 缓存操作中的账单号** @param billNoList*/@SuppressWarnings("unchecked")public void inOperationBillNoCache(List<String> billNoList) {log.info("inOperationBillNoCache--->billNoList:{}", JSON.toJSONString(billNoList));RReadWriteLock readWriteLock = redissonClient.getReadWriteLock(Constant.LEASE_BILL_IN_OPERATION_KEY);RLock rLock = readWriteLock.readLock();rLock.lock();try {if (redisService.hasKey(Constant.LEASE_BILL_IN_OPERATION_CACHE)) {Set<String> inOperationBillNoSet = redisService.smembers(Constant.LEASE_BILL_IN_OPERATION_CACHE);log.info("inOperationBillNoCache--->inOperationBillNoSet:{}", JSON.toJSONString(inOperationBillNoSet));if (CollectionUtils.isNotEmpty(inOperationBillNoSet)) {List<String> multipleOperationBillNoList = (List<String>) CollectionUtils.intersection(inOperationBillNoSet, billNoList);throw new LeaseServiceException(ErrConstant.INVALID_DATAFILED, String.format("账单[%s]存在多人操作,请刷新后重试", String.join(",", multipleOperationBillNoList)));}}} finally {rLock.unlock();}RLock writeLock = readWriteLock.writeLock();writeLock.lock();try {billNoList.forEach(billNo -> redisService.sadd(Constant.LEASE_BILL_IN_OPERATION_CACHE, billNo));} finally {writeLock.unlock();}}

调用场景 

关于缓存数据redis结构选取

set,数据不重复,可以计算交集,判断是否在当前元素中 

源码

 

http://www.dtcms.com/wzjs/154623.html

相关文章:

  • 建立公众号seo专家是什么意思
  • 一级a做爰片偷拍免费网站百度收录是什么意思
  • 建设外包网站免费收录平台
  • 云安区学校网站建设统计表网站seo提升
  • 武汉建设网站制作seo课程培训要多少钱
  • 用dreamweaver做网站怎么切块平台推广是什么意思
  • 网站搭建代码大全临沂色度广告有限公司
  • 有必要自建网站做导购吗免费换友情链接
  • 顺德网站建设案例南宁网络推广平台
  • 自建站公司北京网站外包
  • 淘客做自己的网站自己做的网站怎么推广
  • 外包兼职做图的网站网络营销成功的案例分析
  • 浏览器正能量网站2021站长之家最新域名查询
  • 昆山智能网站开发怎么开网站
  • 电商优惠券网站 建设百度关键词搜索排名查询
  • 中小企业网站建设服务培训计划方案模板
  • 昆山专业网站建设公司哪家好百度网站怎么提升排名
  • 用JS做的购物网站夜狼seo
  • 贵州城市建设网站网站seo优化运营
  • 网站免费在线客服系统seo技术培训机构
  • 旅游网站建设的意义app推广是什么意思
  • 网站建设工作年报百度移动端排名
  • 招商网站的建设意义企业seo顾问服务
  • 网站开发模式有什么站长工具查询网站
  • 社交网站设计百度关键词排名怎么靠前
  • wordpress 相关产品天津优化公司
  • 网站建设有几种方案58同城黄页推广
  • 蓝奏云注册网站seo搜论坛
  • 男朋友说是做竞彩网站维护的app营销
  • 景区微网站 建设方案百度seo关键词排名查询工具