一个简单的分布式锁实现方案
2017-06-08 16:11
309 查看
package com.taobao.upp.subcommon.bizlogic.rights.support; import javax.annotation.Resource; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Component; import com.taobao.tair.DataEntry; import com.taobao.tair.Result; import com.taobao.tair.ResultCode; import com.taobao.tair.impl.mc.MultiClusterTairManager; @Component("couponIssueLockManage") public class CouponIssueLockSupport { private static final Log logger = LogFactory.getLog(CouponIssueLockSupport.class); @Resource(name = "tairManager") private MultiClusterTairManager multiClusterTairManager; public boolean getLock(String lockKey){ Result<DataEntry> dataResult = multiClusterTairManager.get(643, lockKey); if(dataResult.isSuccess()){ if(dataResult.getValue()==null){ ResultCode resultCode = multiClusterTairManager.put(643, lockKey, 1, 10, 60); if(resultCode.isSuccess()){ return true; } } } logger.error("权益加锁失败,lockKey="+lockKey); return false; } public boolean releaseLock(String lockKey){ ResultCode resultCode = multiClusterTairManager.invalid(643, lockKey); if(resultCode.isSuccess()){ return true; } logger.error("权益解锁失败,lockKey="+lockKey); return false; } }
相关文章推荐
- 实现一个简单的服务端推送方案-实例篇Push
- 实现一个简单的服务端推方案
- 实现一个简单的服务端推送方案-实例篇Polling(服务端阻塞读)
- 一个简单的文件服务器实现方案
- 自行控制loadrunner的socket协议性能测试 (转) 一前言 二任务的提出 三实现方案讨论 四技术要点讲解 如何开始录制一个最简单的收发数据包脚本 写日志文件 一行一行读数据包文件 字
- 一个简单的大数实现方案,计算斐波纳契数列
- RabbitMQ一个简单可靠的方案(.Net Core实现)
- 一个简单的文件服务器实现方案
- 实现一个简单的服务端推送方案-实例篇Push
- 实现一个简单的服务端推送方案
- 转:实现一个简单的服务端推送方案
- 实现一个简单的服务端推送方案-实例篇Polling(服务端阻塞读,SLEEP方式读MYSQL)
- 实现一个简单的服务端推送方案-实例篇Polling
- 防止mdf文件被非法附加后修改的一个简单实现方案
- 实现一个简单的服务端推方案
- 一个简单留言本的实现
- 用javascript实现的一个简单抽奖小程序
- 一个购物车的简单实现(多层开发)
- 一个简单的Thread缓冲池的实现
- 一个简单的Thread缓冲池的实现