在大量更新请求之后,更新以负平衡结束

2024-10-01 02:32:30 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我在models.py中有这个方法

 def charge(self, amount):
    self.balance = (self.balance - Decimal(amount))
    self.save()

当新请求传入时,我检查该用户是否有当前余额>;=price这样我就可以做objectRow.charge(price)问题是当我收到1000个请求到同一个ID时,我的余额是-000,用户最终欠我钱,这不是重点

这是我目前的确认

            accountObject = account.objects.get(auth_token=auth_token)

                        if accountObject.balance >= settings.MT_COST:

                            # Save
                            ProductObject = product(application=applicationObject,
                                                account=accountObject,
                                                cost=settings.MT_COST,
                                                direction=2,
                                                status_log=1,
                                                product=product_id,
                                                ip_address=ip_address)
                            ProductObject.save()

                            # Charge User
                            ProductObject.charge(settings.MT_COST)

                            data = {'status': "ok"}
                            return HttpResponse(json.dumps(data), content_type='application/json', status=200)

                        # Not enough Balance
                        else:

                            data = {'status': "error"}
                            return HttpResponse(json.dumps(data), content_type='application/json', status=406)

Tags: selfjsondatasettingsapplicationsavestatusproduct