这里的代码有什么问题

来源:44-7 库存扣减事务的完善

无限灬

2022-11-14

        while True:

            if order_sn in local_execute_dict:

                context.set_code(local_execute_dict[order_sn]["code"])

                context.set_details(local_execute_dict[order_sn]["detail"])

                producer.shutdown()

                if local_execute_dict[order_sn]["code"] == grpc.StatusCode.OK:

                    return order_pb2.OrderInfoResponse(id=local_execute_dict[order_sn]["order"]["id"],

                                                       orderSn=local_execute_dict[order_sn]["order"]["orderSn"],

                                                       total=local_execute_dict[order_sn]["order"]["total"])

                else:

                    return order_pb2.OrderInfoResponse()

            time.sleep(0.1)

什么情况会出现 order_sn 在 local_execute_dict 而 code 和 detail 不在 local_execute_dict[order_sn] 的情况?为什么用queue可以解决这个问题

写回答

1回答

bobby

2022-11-16

//img.mukewang.com/szimg/637484ea098109d607860483.jpg 这里一开始的时候就放入了

0
1
无限灬
我好像懂了,是说在while循环判断的时候,假如网络比较慢还没来得及创建订单,也就是code和detail还没来得及写入,就返回None会问题吗?那么这里用queue通知就没这个问题了吗?
2022-11-16
共1条回复

Go+Python打造电商系统 自研微服务框架 抓紧高薪机遇

快速转型Go工程师,成为具备双语言后端能力的开发者

508 学习 · 530 问题

查看课程