public interface

LongRunningTaskManager

com.atlassian.confluence.util.longrunning.LongRunningTaskManager
Known Indirect Subclasses

Class Overview

Coordinates the creation and maintenance of batch jobs that last longer than a single web request

Summary

Public Methods
LongRunningTask getLongRunningTask(User user, LongRunningTaskId id)
Retrieve a previously started task.
void resume()
Resume accepting long-running tasks after stop(long, TimeUnit) has been called.
LongRunningTaskId startLongRunningTask(User user, LongRunningTask task)
Start some task in a new thread
void stop(long timeout, TimeUnit unit)
Stop accepting new long running tasks.
void stopTrackingLongRunningTask(LongRunningTaskId id)
Clean up an old task.

Public Methods

public LongRunningTask getLongRunningTask (User user, LongRunningTaskId id)

Retrieve a previously started task. The task may be completed.

Parameters
user the user responsible for the task
id the ID of the task
Returns
  • the task, or null if no task is registered with that ID and user

public void resume ()

Resume accepting long-running tasks after stop(long, TimeUnit) has been called. If the long-running task manager is not stopped, this method will whistle quietly to itself and do nothing.

public LongRunningTaskId startLongRunningTask (User user, LongRunningTask task)

Start some task in a new thread

Parameters
user the user responsible for the task
task the task to perform
Returns
  • an ID that can be used to look up the task
Throws
IllegalStateException if the task manager has been shut down

public void stop (long timeout, TimeUnit unit)

Stop accepting new long running tasks. All tasks that have previously been submitted will be run to completion. If this takes longer than the timeout, the method will throw an exception and the task manager will resume normal operation accepting new tasks.

Parameters
timeout the time to wait for running tasks to complete
unit the unit of measurement for the timeout parameter
Throws
TimeoutException if the timeout is exceeded

public void stopTrackingLongRunningTask (LongRunningTaskId id)

Clean up an old task. The manager hangs on to tasks that have been completed so their status can be queried. Calling this method will remove the task from the manager entirely.

This method does not stop a task from being executed. If the task is already running it will continue to completion, you just won't be able to query its status any more.

Parameters
id the ID of the task to remove.