public interface DeferredTask extends Runnable, Serializable
Interface for deferred tasks. Classes implementing this interface may use TaskOptions#payload(DeferredTask) to serialize the DeferredTask into the payload of the task definition. The DeferredTask#run() method will be called when the task is received by the built in DeferredTask servlet.
Normal return from this method is considered success and will not retry unless DeferredTaskContext#markForRetry is called. Exceptions thrown from this method will indicate a
failure and will be processed as a retry attempt unless DeferredTaskContext#setDoNotRetry(boolean) was set to true
.