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

南京百姓网免费发布信息网广州王牌seo

南京百姓网免费发布信息网,广州王牌seo,德州哪里做网站,新公司成立需要办理哪些手续一:业务锁 在代码业务逻辑加锁,防止不同业务操作相同业务表导致数据错乱,设置锁进行等待。这里锁使用的是ReentrantLock。详细的介绍可以参考: https://blog.csdn.net/jerry11112/article/details/112375167 Slf4j public class…

一:业务锁

在代码业务逻辑加锁,防止不同业务操作相同业务表导致数据错乱,设置锁进行等待。这里锁使用的是ReentrantLock。详细的介绍可以参考:
https://blog.csdn.net/jerry11112/article/details/112375167

@Slf4j
public class MyLock {private static ConcurrentHashMap<Long, ReentrantLock> reenTranLock = new ConcurrentHashMap<>();/*** 业务加锁* @param businessId        业务id* @param lockCode          需要加锁的代码,执行完后自动解锁* @param timeOutSeconds    锁超时时间* @return**/public static <T> T lockAndUnLock(Long businessId, Supplier<T> lockCode, long timeOutSeconds) {try {//可重入公平锁:true-公平锁,false-非公平锁ReentrantLock lock = reenTranLock.putIfAbsent(businessId, new ReentrantLock(true));lock = lock != null ? lock : reenTranLock.get(businessId);//超时加锁,单位秒boolean lockSuccess = lock.tryLock(timeOutSeconds, TimeUnit.SECONDS);if (lockSuccess) {try {return lockCode.get();} catch (Exception ex) {throw ex;} finally {//解锁lock.unlock();}} else {throw new Exception("操作失败");}} catch (Exception ex) {if (ex instanceof IllegalStateException) {throw new IllegalStateException(ex.getMessage());}throw new RuntimeException(ex);}}/*** 加锁和解锁默认60S超时* @param businessId    业务id* @param lockCode      需要加锁的代码,执行完后自动解锁* @return**/public static <T> T lockAndUnLock(Long businessId, Supplier<T> lockCode) {return lockAndUnLock(businessId, lockCode, 60);}public static void main(String[] args) {Boolean a = lockAndUnLock(1L, () -> {String aaa = "111111";return true;});System.out.println(a);}
}

二:定时任务锁

当多个负载服务同时启用相同程序定时任务,需加上分布式锁,这里使用的是redis加锁。

@Slf4j
public class TaskTest {@Autowiredprivate RedisTemplate redisTemplate;@Scheduled(cron = "0 0/10 * * * ?")public void task() {//redis key名称String redisKey = "test".concat(":").concat(this.getClass().getSimpleName()).concat("task");//加上redis锁,适应分布式场景boolean setOk = redisTemplate.opsForValue().setIfAbsent(redisKey, redisKey, 10, TimeUnit.SECONDS);  //单位秒:根据不同的业务处理,自行设置大小时间if (!setOk) {log.info(redisKey + "任务已执行");return;}try {//业务逻辑处理.....} catch (Exception ex) {log.error("定时任务异常", ex.getMessage());} finally {//手动解锁redisTemplate.delete(redisKey);}}
}
http://www.hkea.cn/news/358614/

相关文章:

  • wordpress评论自定义百度刷排名seo
  • 四川建设网官网登录入口泉州seo外包
  • 网站有备案 去掉备案网络营销意思
  • 新建网站推广给企业百度问一问在线咨询客服
  • 曹鹏wordpress建站seo视频广东疫情防控措施
  • 网站开发的岗位排名优化工具
  • 岳阳做网站怎么做推广让别人主动加我
  • 不断改进网站建设公司百度官网优化
  • 万户网站宁波网站制作优化服务
  • 潍坊快速网站排名网站是怎么做出来的
  • 聚美优品的pc网站建设注册网址
  • 陕西省住房与城乡建设厅网站免费b站推广软件
  • 淮南市住房与城乡建设部网站网店买卖有哪些平台
  • 网页qq表情佛山百度快速排名优化
  • 网站建设方案论文1500社会新闻最新消息
  • 网站组建 需求分析市场监督管理局职责
  • 云课堂哪个网站做的好厦门关键词优化seo
  • 中企动力沈阳分公司seo免费诊断电话
  • 网站vps被黑湖人最新排名最新排名
  • 如何夸奖客户网站做的好seo课程心得体会
  • 有哪些做电子商务的网站时空seo助手
  • 临沂百度网站电脑培训机构哪个好
  • 无锡专业做网站的公司怎样把自己的产品放到网上销售
  • 大学网站建设管理办法推广技巧
  • 长春做网站公司seo关键词排名优化软件怎么选
  • 网站开发未按合同约定工期完工seo关键词排名怎么提升
  • 创可贴app海报制作网站百度seo优化方法
  • 龙岗品牌网站建设2024年新闻摘抄
  • 南阳住房和城乡建设厅网站招聘网站排名
  • 如何做网站活动封面建站的公司