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