With the Task Queue API, applications can perform work outside of a user request but initiated by a user request. If an app needs to execute some background work, it may use the Task Queue API to organize that work into small, discrete units, called Tasks. The app then inserts these Tasks into one or more Queues. App Engine automatically detects new Tasks and executes them when system resources permit.
Python:
http://code.google.com/appengine/docs/python/taskqueue/overv...
Java:
http://code.google.com/appengine/docs/java/taskqueue/overvie...
the lifetime of a single task's execution is limited to 30 seconds
You still have to do more coding to chunk the work.
If you have a popular app, this isn't an issue. If you don't, it hurts.
Took 4.67s to render http://www.webpagetest.org/result/100306_5PZ7/1/details/
I monitored cold startup for a month on one of my apps and some times see 10s cold startup. http://www.webpagetest.org/result/100309_5TDW/
This is after profiling, reducing imports, caching, using app appstats, etc.
Some folks have resorted to pinging every minute but Google discourages that since it ties up their resources. If everyone pinged their site once a minute then resources would never be freed....
Here's a good thread on the issue https://groups.google.com/group/google-appengine/browse_thre...
You can run your App Engine apps pretty much anywhere.