Anyone? Is this a flaw in AppEngine? Do you need more information - just ask if that's the case?
Larry wrote: > Hi! > > I've hit a small dilemma! I have a handler called vote, when it is > invoked it sets a user's vote to whatever they have picked. To > remember what options they previously picked, I store a VoteRecord > options which details what their current vote is set to. > > Of course, the first time they vote, I have to create the object and > store it. But successive votes should just change the value of the > existing VoteRecord. But he comes the problem: under some > circumstances two VoteRecords can be created. It's rare (only happened > once in all 541 votes we've seen so far) but still bad when it does. > > The issue happens because two separate handlers both do essentially > this: > > vote = VoteRecord.all().filter('user =', user) > if vote.count(1) == 0: > obj = VoteRecord() > obj.user = user > obj.option = option > obj.put() > else: > obj = vote[0] > obj.option = option > obj.put() > > My question is: what is the most effective and fastest way to handle > these requests while ensuring that no request is lost and no request > creates two VoteRecord objects? > > Thanks, > Larry > > PS: You can see the polls working here: http://silicon.appspot.com/polls. > Notice that voting twice should change the vote the second time > instead of creating two votes. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---