On 6 juin 09, at 15:34, AlexM <alex.marge...@gmail.com> wrote:
> In one of my views i am using a custom manager , the custom manager
> finds a user , alters his "balance" (where balance is an integer
> value) , and then saves the user with the new balance.
>
> The problem occurs when http requests coming really fast on that
> view.
>
> Lets say the "original" value of a users balance is 10 .
> Two requests are made , each one asking for the users balance to be
> credited plus 5 of the original one.
> The "perfect" solution would be the first requests to be
> processed ,saved and then the second to do the same.
>
> However what happens is that the first request will come , it will do
> its query and load the object , and the second request will also do
> the query before the first request was able to complete the process of
> saving the new balance, because of that the second request will have
> and "out of date" balance which it will then save . So in the end the
> user will have 10 (origina ballance) + 5 (second request) = 15 on his
> balance when he should have 20.
>
> What could i do to prevent this from happening ?
>
Use transactions?

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to