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

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

基本思路是:锁+幂等性

具体实现:

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

Java程序:

import javautilScanner;

public class xll {

public static void main(String[] args) {

int score;

double count = 10;

Scanner input = new Scanner(Systemin);

Systemoutprintln("请输入会员积分:");

score = inputnextInt();

if(score < 2000)

count = 09;

else if(score <4000)

count = 08;

else if(score < 8000)

count = 07;

Systemoutprintln("该会员享受的折扣是:");

Systemoutprintln(count + "折");

}

}

运行测试:

请输入会员积分:

5000

该会员享受的折扣是:

07折

请输入会员积分:

3420

该会员享受的折扣是:

08折

有一问题,如果积分超过8000是几折?

1,批量打折折扣要在001-099间,这个可以用js去验证

2减价不能超过原价这个问题,循环出来的每行都定义一个元素,id=id_+"oldPrice",这样就行了

3然后你就可以获取到每行的原价和减的价格,用js对他们进行比较判断

以上就是关于java程序领取优惠卷,高并发下怎么避免领取量超过预发量全部的内容,包括:java程序领取优惠卷,高并发下怎么避免领取量超过预发量、JAVA 大家帮忙看一下怎么做 会员积分x x<2000 (9折) 2000<=x<4000 (8折) 4000<=x<8000(7折)、java怎么做批量打折,批量减价的页面验证(批量打折折扣要在0.01-0.99间,减价不能超过原价)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10213069.html

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

发表评论

登录后才能评论

评论列表(0条)

保存