If you have big jobs operating on a large amount of data, then you might look into map reduce.
Anyhow, you should break your large job down to smaller idempotent tasks. Idempotent (without side effects) basically means you can rerun a task getting the same results.
Once you have smaller tasks you can choose to schedule them via Task Queue or use a map reduce framework.
Things to note:
- You are not guaranteed to get a shutdown callback. Our backend instances are restarted every day and our shutdown hooks do not get called.
- Memcache is not reliable. Do not treat it as permanent storage.