django-nonrel/djangoappengine — pull request #71 by nealedj (2013-09-17 09:52:40+00:00)
Title: Override the default deferred handler with a finite retry version.

If a task fails because it happened to be pickled in a 'bad state' (an object pickled before schema changes for example) the only way to remove it from a task queue is to purge the whole queue.

This deferred handler will enqueue a task onto a `broken-tasks` (or `settings.BROKEN_TASK_QUEUE`) queue after it has failed after a certain amount of times. This only occurs if `settings.TASK_RETRY_ON_SOURCE_QUEUE = True`.