Yes it was. :)
Robert On Wed, Jul 14, 2010 at 5:49 PM, Chris Copeland <ch...@cope360.com> wrote: > > On Wed, Jul 14, 2010 at 3:54 PM, Sam <couponsys...@gmail.com> wrote: >> >> I believe all that it would do is >> move the timing issue from the main program logic to a defined >> transaction and we would still have the potential gap in time between >> when the initial query was executed to fetch the data and the put() >> was execute to write it back. > > If the data fetched by the get() at the first of the transaction has been > changed (by another process) when you do the put() at the end of the > transaction, then the transaction will be retried and it will do a new get > which will see the other process's changes and the process repeats. This > isn't obvious, but it is talked about in one of the links I sent earlier. > > I think Robert's example is missing a put() at the end of the transaction > function: > > def txn(): > ccode = CCode.all().filter('Assinged', 0)\ > .filter('ExpireDate >=', dtCompareDate)\ > .filter("PartnerID", intPartnerID).get() > if not ccode: > # handle no ccode.... > ccode.SessionID = strSessionID > ccode.Assigned = 1 > ccode.put() > > db.run_in_transaction(txn) > > > -Chris > > -- > 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-appeng...@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. > -- 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-appeng...@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.