java程序领取优惠卷,高并发下怎么避免领取量超过预发量

java程序领取优惠卷,高并发下怎么避免领取量超过预发量,第1张

基本思路是:锁+幂等性

具体实现:

使用redis的decr (对key对应的数字做减1操作。如果key不存在,那么在操作之前,这个key对应的值会被置为0。如果key有一个错误类型的value或者是一个不能表示成数字的字符串,就返回错误。这个操作最大支持在64位有符号的整型数字。)可以实现原子性的递增递减操作控制优惠码不超送,然后给每个用户维护一个userid+优惠码活动的key保证幂等性,只要redis存在这种key,那就代表已经领取了,具体的优惠码分发可以异步执行。为了避免竞争(同一个用户,多个设备同时领取),参考:网页链接

条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。

优惠券就是其中的一种

// 参考三目运算,例子

int i=1//

String b=String.valueOf(i)//转换成string类型

b = (b.length() == 1 ? "000" + b : b.length() == 2 ? "00" + b: b.length() == 3 ? "0" + b : b)

b="B"+b

System.out.println(b)//输出结果为:B0001

}


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/70931.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-02
下一篇2023-03-02

发表评论

登录后才能评论

评论列表(0条)

    保存