为了账号安全,请及时绑定邮箱和手机立即绑定

处理订单时用到了锁 请问哪里用到锁了

请问哪里有用到锁   看了代码  没找到

正在回答

5 回答

status 0 未处理 1 已处理 2 处理中

应该是查询status=0的数据,然后将数据状态改为2,如果执行成功就改为1,反之改为0,这样每次查询status=0的数据就不会有重复的。


视频中说的锁没有任何意义。

0 回复 有任何疑惑可以回复我~

这里的锁应该是配合其他地方使用的, 其他地方查询的时候不对 status 为 2 (处理中的)的进行修改处理

0 回复 有任何疑惑可以回复我~

正确做法应该是先 查找 2条数据出来, 然后更新为 2 (处理中),  下一步对这俩条数据进行处理

0 回复 有任何疑惑可以回复我~

这个锁完全是自己yy的一个锁, 完全没有起到作用;

 试想一下:

 第一次执行

     修改2条记录为  状态更新为2 。 

    然后搜索状态为 2 的数据  (2条);

    处理数据 (此时处理流程在复杂状态下1分钟内只处理了1条);

1分钟后, 第二次执行     

    修改2条记录为  状态更新为2 。 

    然后搜索状态为 2 的数据  (3条,2条是本次更新的记录,还有1条是上次没有处理完成的);

    处理数据 (此时是不是有一条数据重复处理了???);


2 回复 有任何疑惑可以回复我~

订单状态先设置为“处理中”(锁定),然后进行处理,处理完成后再设置为“已处理”(解除锁定)。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

处理订单时用到了锁 请问哪里用到锁了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信