API any module can use for providing long, asynchronous tasks execution.

The LongTaskExecutor can run any Runnable, but preferably that also implements LongTask interface for progress and cancellation.