接口幂等性,防止重复提交
String key = Constants.SAVE_TOPIC_ACT_CACHE.concat(id);
boolean val = jedisClient.acquireLock(key, 5);
if (!val) {
return RestResult.wrapErrorResponse(RestConstants.ERROR_CODE_SERVICE_ERROR, "您当前操作频繁,请稍候重试!");
}
public Boolean acquireLock(final String lock, final int expired) {
Object result = this.runTask(new JedisClient.Callback() {
public Boolean onTask(Jedis jedis) {
long value = System.currentTimeMillis() + (long)(expired * 1000) + 1L;
long acquired = jedis.setnx(lock, String.valueOf(value));
if (acquired == 1L) {
jedis.expire(lock, expired);
return true;
} else {
return false;
}
}
});
return (Boolean)result;
}