Thanks Andrius, I will try to use the datetime module. I tried beforehand, but I couldn't get it to work (For some reason), so I reverted to use the time.time() function, which returned a float.
I also just tried using an integer rather than a float for the time ,and it got slower...! - '13056ms-cpu' Regards, and have a happy christmas, Tom On Dec 22, 10:31 am, Andrius <[email protected]> wrote: > Hello Tom, > > try to check index.yaml to see if index for for time property exists. > > Why do you have float type property for the time? it would be more > efficient to use datetime or integer, because float is much heavier. > And try to query without maximum limit, because it will be applied by > default: > If more than 1000 entities match the query, and either no limit is > specified or a limit larger than 1000 is used, only the first 1000 > results are returned by fetch(). > > Regards, > Andrius > > On Dec 21, 11:17 pm, Tom <[email protected]> wrote: > > > Hello! > > I have some data within my application that I want to expire after 1 > > week. To do this every day I get the 'Scheduler Service' (http:// > > schedulerservice.appspot.com/) to run a GET request to a page on my > > app. This then runs a GQL that finds any records over 1 week old, and > > deletes them. > > Seems simple? I did a test with 24 records, and it took (Apparently) > > '10706ms-cpu' time. 10 seconds to sort through 24 records?? > > > Here is the code: > > class clearapicallback(webapp.RequestHandler): > > def get(self): > > self.response.out.write('secret_callback_auth_code') > > # 1 week = 604800 > > request = db.GqlQuery('SELECT * FROM Database WHERE time < : > > 1',time.time()-10).fetch(1000) > > db.delete(request) > > > and the Database object: > > > class Database(db.Model): > > pid = db.StringProperty() > > uid = db.StringProperty() > > sex = db.StringProperty() > > qid = db.StringProperty() > > qan = db.StringProperty() > > anon = db.BooleanProperty() > > time = db.FloatProperty() > > > My question is, why did it take 10 seconds!! It wasn't a fluke, other > > requests have taken '17583ms-cpu' or more, with 23 records. > > Can I make database records expire automatically (I don't want to use > > memcache, unless it is good for storing data for a whole week)? And > > how can I improve the performence? > > I am expecting a lot more than 24 records to be deleted a day, and I > > cant have it using that much CPU! > > > Regards > > ~Tom --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
