Well, but I don't care it, my application allows the same ID, I just need it for sorting, and it's harder to sort by time when the browser do an AJAX get. Some times I need handle the timezone difference between server and browser. If you want keep a unique ID, the best way is set its key_name, and try again if put failed.
2009/4/19 djidjadji <[email protected]> > > If two requests want to create an M() they will get the same ID. > You must use some kind of transaction to get unique IDs > > 2009/4/18 风笑雪 <[email protected]>: > > I use this code to keep an id: > > class M(db.Model): > > id = db.IntegerProperty() > > time = db.DateTimeProperty(auto_now_add=True) > > @staticmethod > > def max_id(): > > maxID = memcache.get('MaxID') > > if maxID: > > return maxID > > messages = Message.all() > > messages.order("-id") > > message = messages.get() > > if message: > > return message.id > > else: > > return 0 > > entity = M() > > entity.id = M.maxID + 1 > > entity.put() > > 2009/4/19 David Wilson <[email protected]> > >> > >> > >> thanks! i missed that in the docs :) > >> > >> I wasnt using a datetime just to save a bit of space, but i can see i > >> need to know to guarantee ordering, or if i want to do ordered paging > >> via key i would need to handle key creation myself to make sure they > >> are in order. > >> > >> This becomes harder in one case for me as users can create designs > >> that need to be paged through in creation order. There will be too > >> much contention on a glodal counter for this, so i guess an offset > >> page on date is the best i can do for now. Or just not worry when some > >> 'new designs' are out of order. > >> > >> > >> > >> On Apr 18, 2:20 am, David Symonds <[email protected]> wrote: > >> > On Sat, Apr 18, 2009 at 3:21 PM, David Wilson > >> > > >> > <[email protected]> wrote: > >> > > Is this expected behaviour? and thus do i need to always give a > >> > > key_name to guarantee order? this creates scaling issues for order > >> > > counter (which is probably why its not in order in the backend :) ) > >> > > >> > Keys are only guaranteed to be unique, not sequential or in order: > >> > > >> > > http://code.google.com/appengine/docs/python/datastore/keysandentityg... > >> > > >> > What is wrong with giving your models a timestamp property (with > >> > auto_now_add=True), and sorting by that? > >> > > >> > Dave. > >> > > > > > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
