I'll have to think more about this. At the moment I can't see how to apply transactions. Here is the sequence of operations:
- Browser sends update request to Python module, including key of entity to update. - Python module performs update using entity key, and sends response. - Upon receiving response, browser sends request to Java module, including key of entity to do processing on. - Java module reads entity using entity key, does processing. But I think you are on to something with the multiple Ajax requests. I'm disabling the button until a request returns, and staring to use an update-sequence-number. On Tuesday, November 1, 2016 at 11:58:38 PM UTC-4, Jeff Schnitzer wrote: > > Users are clever and insidious when it comes to breaking software. If you > aren’t using a transaction in a get/update/put cycle, there are all manner > of ways that updates could get screwed up or lost. Consider that requests > might be sitting for many seconds at a cold start and therefore come in out > of order… users may click buttons many times, launching multiple ajax > requests… and since you only see this under heavy traffic, you’re probably > seeing some weird 0.01% edge behavior. > > Transactions are the only way to guarantee that get/update/put cycles have > the effect you think they do. This is the first thing I would fix before > trying anything else. > > Jeff > > On Tue, Nov 1, 2016 at 5:42 PM, Jonathan Munson <[email protected] > <javascript:>> wrote: > >> Good thought, but in this case only one user can update the entity. >> >> On Tuesday, November 1, 2016 at 6:13:13 PM UTC-4, pdknsk wrote: >>> >>> If more than one user can update the same entity, the bug may be that >>> you're not updating the entity atomically (as in a transaction). >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Google App Engine" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> Visit this group at https://groups.google.com/group/google-appengine. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/google-appengine/98666a27-819f-4513-a596-4f29ba3906da%40googlegroups.com >> >> <https://groups.google.com/d/msgid/google-appengine/98666a27-819f-4513-a596-4f29ba3906da%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/41a8d843-2d9a-4138-a5b0-3862ebc33811%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
