自增的方式是 redis 的 incr 方法。 服务是集群,redis 是单机。
1
qq316107934 2019-11-19 11:36:09 +08:00
第一次获取当前兑奖次数是不是多余了
|
2
bk201 2019-11-19 11:42:44 +08:00
这是什么语言的语法
|
4
TypeErrorNone OP @qq316107934 是多余,只为求个心安
|
5
tyrantZhao 2019-11-19 14:21:50 +08:00
没啥问题啊
|
6
mengzhuo 2019-11-19 14:22:26 +08:00
大哥,这压根不是抽奖吧,只是检查库存而已?
|
7
scukmh 2019-11-19 14:35:35 +08:00
不要用 this,人家都提示了、
|
8
mamahaha 2019-11-19 15:08:55 +08:00
这个:=只有 go 语言在用吧?
|
11
picone 2019-11-19 15:18:13 +08:00
你这个是实现原子+1 吧,为啥不用 atomic
|
13
andyhuzhill 2019-11-19 15:33:02 +08:00 1
@mamahaha #8 Pascal VHDL 都有用
|
14
Vegetable 2019-11-19 15:35:05 +08:00 1
这个 this 看的我浑身难受...
整体上这个思路我觉得不太对 你这是一个检查方法?canDosth,但是你在内部通过 incr 操作了 redis,意思库存在这就给扣掉了,所以你的检查操作不是幂等的,这样的设计有些反直觉了。 基于 incr 设计的方法,#1 楼说的对,你第一步检查是多余的,假如实现一个幂等的检查方法,这个方法在不做事务处理时必然是不安全的,而做了事务处理的话,检查方法又失去了意义。所以去掉第一步检查,这方法改为扣库存,通过扣库存是否成功来判断是否执行下一步就行了。 so,方法名改一下,去掉第一个检查库存,如果有必要为后边的判断不通过的情况加上回滚 |
15
trustbutverify 2019-11-19 18:27:11 +08:00 via Android 1
@mamahaha py3.8 开始用
|