后端实现防止用户重复点击按钮-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值,可根据自己的需求进行赋值,可以实现不同维度上的限制点击。

希望该文章能够帮助到你!点赞支持一下吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值