java后端实现防止用户重复点击按钮-redis缓存方式
使用缓存的方式控制代码运行逻辑
标题例如下面的方式
@Override
public AjaxResult statisticsTotalNum(DisVerifyTotalNum disVerifyTotalNum) {
//设置缓存值控制多次点击
String execute = disVerifyTotalNum.getSystemKey() + ":" + disVerifyTotalNum.getDisDataDate() + ":" + disVerifyTotalNum.getDisDataFrequency();
String redisKey = "summary:" + execute;
// 如果缓存存在,直接返回上次的threadId,进行用户提示。
if(Objects.nonNull(cacheManager.get(redisKey))) {
return AjaxResult.success("正在XXXXX!");
}
cacheManager.set(redisKey, threadId);
try {
/**
这里写你的代码逻辑
} catch (Exception e) {
logger.error("XXXX失败:{}", e.getMessage(), e);
} finally {
//删除缓存
cacheManager.delete(redisKey);
}
return AjaxResult.success("threadId", threadId);
}
上面的代码中 execute 为缓存key值,可根据自己的需求进行赋值,可以实现不同维度上的限制点击。
希望该文章能够帮助到你!点赞支持一下吧!