com.atlassian.confluence.util.longrunning
Interface LongRunningTaskManager

All Known Implementing Classes:
DefaultLongRunningTaskManager

public interface LongRunningTaskManager

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


Method Summary
 com.atlassian.core.task.longrunning.LongRunningTask getLongRunningTask(com.atlassian.user.User user, LongRunningTaskId id)
          Retrieve a previously started task.
 void resume()
          Resume accepting long-running tasks after stop(long, java.util.concurrent.TimeUnit) has been called.
 LongRunningTaskId startLongRunningTask(com.atlassian.user.User user, com.atlassian.core.task.longrunning.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.
 

Method Detail

startLongRunningTask

LongRunningTaskId startLongRunningTask(com.atlassian.user.User user,
                                       com.atlassian.core.task.longrunning.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

getLongRunningTask

com.atlassian.core.task.longrunning.LongRunningTask getLongRunningTask(com.atlassian.user.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

stopTrackingLongRunningTask

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.

stop

void stop(long timeout,
          TimeUnit unit)
          throws TimeoutException
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

resume

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



Copyright © 2003-2011 Atlassian. All Rights Reserved.