I use a chain of tasks to go through a series of entities to process. First
task is inserted by a cron job. It pulls 50 "KnownFeed" entities to process,
and then it inserts the next task passing along a cursor so the next task
continues where the last one finished. Typical pattern, nothing special. And
it's been working for about a year.

In the last few days, I noticed that the first task in a chain tends to fail
too often, and in doing that it doesn't start the chain and the app stops.
It gets retried and it still fails, again and again, for hours. This is
where it breaks:


*    query = KnownFeed.all().filter('eta <', end_time).order('eta')*
*    known_feeds = query.fetch(50)
  * <-- fails with Timeout or DeadlineExceededError


    The query is as simple as it gets, and I haven't changed that code
recently. It's not contention errors or due to too much load because when
the first task in the chain fails, most of the functionality on the app
stops. The interesting thing is that if I kill the task and insert a new
one, the new task runs without problems, even though it runs the same query.
Although I noticed that sometimes the new task fails once then passes on the
retry.

    Any thoughts?

Thanks,
Waleed

P.S. Not sure if that's relevant, but when the task does run, it inserts a
series of other tasks and all of them update the "eta" column in the
entities. I thought maybe the index updates take time to update, but that
shouldn't take hours! The table has 300K entities.

-- 
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.

Reply via email to