You could look at the task queue to build a more dynamic version of what you are doing with cron polling.
Also tasks can execute in parallel, so instead of 30,000/200 units of time to delete, you can do (30,000/200)/N where N is the level of concurrency you set for your task queue. Robin On Oct 14, 10:09 am, Chris S <[email protected]> wrote: > I'm fine with having to Cron the job. I would just like to manually > limit the number deleted in a single cron. That way I won't get an > error message on every cron for the next two days while I'm deleting > 30,000 enteries 200 at a time. Just doesn't sit right with me > executing a command and letting it run until it just errors out. > > On Oct 14, 10:00 am, mdipierro <[email protected]> wrote: > > > There is never going to e better solution they limit how many records > > you can access per request. You have to hit the page many times until > > all records are deleted, or do it from outside the web app but I do > > not know how. > > > Massimo > > > On Oct 14, 9:53 am, Chris S <[email protected]> wrote: > > > > That was 'better' but same problem. With the change you've given it > > > still errors out but 199 deletions were performed (previously nothing > > > was deleted). It's not good but at least it's deleting something > > > until there is a better solution. > > > > On Oct 14, 9:39 am, mdipierro <[email protected]> wrote: > > > > > Not sure. Try this: > > > > > myset=db(db.item2.id>0) > > > > while myset.delete(): pass > > > > > Massimo > > > > > On Oct 14, 9:29 am, Chris S <[email protected]> wrote: > > > > > > Setting up Cron jobs on GAE is simple enough. But I'm not > > > > > understanding something with creating a cron that can delete table > > > > > entries. > > > > > > I was attempting to make the cron remove all items in a selection > > > > > with: > > > > > db.delete(sqldb.item2) > > > > > return 'Delete complete' > > > > > > The problem is it fetches the 1000 limit and deleting that many items > > > > > exceeds the 30-second process limit on GAE. > > > > > > So I was trying to reduce the number of items deleted in each cron > > > > > with: > > > > > rows=db.(db.item2.id>0).select(limitby=(0,200)) > > > > > > That returns a row object which doesn't seem to take the delete > > > > > command. Only a 'set' can be called with delete. > > > > > myset=db(db.item2.id>0) > > > > > myset.delete() > > > > > > This works just fine as far as deleting goes, but the set can't be > > > > > limited like the selection can. > > > > > > I'm sure I'm just missing something, but how do I perform a delete > > > > > command on something other than the max allowed selection of 1000? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "web2py-users" 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/web2py?hl=en -~----------~----~----~----~------~----~------~--~---

