public interface WorkManager
WorkManager executes Work instances asynchronously.
A Work can be scheduled by calling schedule(org.nuxeo.ecm.core.work.api.Work).
Work is executed in a thread pool and a work queue that depends on the work's category.
| Modifier and Type | Interface and Description |
|---|---|
static class |
WorkManager.Scheduling
The scheduling policy to use when adding a work instance using
schedule(Work, Scheduling). |
| Modifier and Type | Method and Description |
|---|---|
boolean |
awaitCompletion(long timeout,
TimeUnit unit)
Waits for completion of all work.
|
boolean |
awaitCompletion(String queueId,
long timeout,
TimeUnit unit)
Waits for completion of work in a given queue.
|
void |
cleanup()
Clears the list of completed work instances older than what's configured for each queue.
|
void |
clearCompletedWork(long completionTime)
Clears the list of completed work instances older than the given time.
|
void |
clearCompletedWork(String queueId)
Clears the list of completed work instances for a given queue.
|
Work |
find(String workId,
Work.State state)
Finds a work instance.
|
Work |
find(Work work,
Work.State state,
boolean useEquals,
int[] pos)
Deprecated.
since 5.8, use
getWorkState(java.lang.String) instead |
String |
findResult(String workId)
Finds a work result.
|
String |
getCategoryQueueId(String category)
Gets the queue id used for a given work category.
|
int |
getNonCompletedWorkSize(String queueId)
Deprecated.
since 5.8, use
getQueueSize(java.lang.String, org.nuxeo.ecm.core.work.api.Work.State) with null state instead |
int |
getQueueSize(String queueId,
Work.State state)
Gets the number of work instances in a given queue in a defined state.
|
WorkQueueDescriptor |
getWorkQueueDescriptor(String queueId)
Gets the work queue descriptor for a given queue id.
|
List<String> |
getWorkQueueIds()
Lists the ids of the existing work queues.
|
Work.State |
getWorkState(String workId)
Gets the state in which a work instance is.
|
void |
init()
Starts up this
WorkManager and attempts to resume work previously suspended and saved at
shutdown(long, java.util.concurrent.TimeUnit) time. |
boolean |
isStarted() |
List<Work> |
listWork(String queueId,
Work.State state)
Lists the work instances in a given queue in a defined state.
|
List<String> |
listWorkIds(String queueId,
Work.State state)
Lists the work ids in a given queue in a defined state.
|
void |
schedule(Work work)
Schedules work for execution at a later time.
|
void |
schedule(Work work,
boolean afterCommit)
Schedules work for execution at a later time, after the current transaction (if any) has committed.
|
void |
schedule(Work work,
WorkManager.Scheduling scheduling)
Schedules work for execution at a later time, with a specific scheduling policy.
|
void |
schedule(Work work,
WorkManager.Scheduling scheduling,
boolean afterCommit)
Schedules work for execution at a later time, with a specific scheduling policy.
|
boolean |
shutdown(long timeout,
TimeUnit unit)
Shuts down this
WorkManager and attempts to suspend and save the running and scheduled work instances. |
boolean |
shutdownQueue(String queueId,
long timeout,
TimeUnit unit)
Shuts down a work queue and attempts to suspend and save the running and scheduled work instances.
|
List<String> getWorkQueueIds()
String getCategoryQueueId(String category)
category - the categoryWorkQueueDescriptor getWorkQueueDescriptor(String queueId)
queueId - the queue idnullvoid init()
WorkManager and attempts to resume work previously suspended and saved at
shutdown(long, java.util.concurrent.TimeUnit) time.boolean shutdownQueue(String queueId, long timeout, TimeUnit unit) throws InterruptedException
queueId - the queue idtimeout - the time to waitunit - the timeout unittrue if shutdown is done, false if there are still some threads executing after the
timeoutInterruptedExceptionboolean shutdown(long timeout, TimeUnit unit) throws InterruptedException
WorkManager and attempts to suspend and save the running and scheduled work instances.timeout - the time to waitunit - the timeout unittrue if shutdown is done, false if there are still some threads executing after the
timeoutInterruptedExceptionvoid schedule(Work work)
This method is identical to schedule(Work, boolean) with afterCommit = false.
work - the work to executevoid schedule(Work work, boolean afterCommit)
work - the work to executeafterCommit - if true and the work is scheduled, it will only be run after the current transaction
(if any) has committedvoid schedule(Work work, WorkManager.Scheduling scheduling)
This method is identical to schedule(Work, Scheduling, boolean) with afterCommit = false.
work - the work to executescheduling - the scheduling policyschedule(Work)void schedule(Work work, WorkManager.Scheduling scheduling, boolean afterCommit)
work - the work to executescheduling - the scheduling policyafterCommit - if true and the work is scheduled, it will only be run after the current transaction
(if any) has committedschedule(Work)@Deprecated Work find(Work work, Work.State state, boolean useEquals, int[] pos)
getWorkState(java.lang.String) insteadWork find(String workId, Work.State state)
String findResult(String workId)
workId - the id of the work to find the resultnull if there is no result or if work is not COMPLETEDWork.State getWorkState(String workId)
This can be SCHEDULED, RUNNING, COMPLETED,
Work.State.CANCELED or Work.State.FAILED.
workId - the id of the work to findnull if not foundList<Work> listWork(String queueId, Work.State state)
List<String> listWorkIds(String queueId, Work.State state)
int getQueueSize(String queueId, Work.State state)
@Deprecated int getNonCompletedWorkSize(String queueId)
getQueueSize(java.lang.String, org.nuxeo.ecm.core.work.api.Work.State) with null state insteadqueueId - the queue idboolean awaitCompletion(String queueId, long timeout, TimeUnit unit) throws InterruptedException
queueId - the queue idtimeout - the time to waitunit - the timeout unittrue if all work completed in the queue, or false if there is still some non-completed
work after the timeoutInterruptedExceptionboolean awaitCompletion(long timeout, TimeUnit unit) throws InterruptedException
timeout - the time to waitunit - the timeout unittrue if all work completed, or false if there is still some non-completed work after the
timeoutInterruptedExceptionvoid clearCompletedWork(String queueId)
queueId - the queue idvoid clearCompletedWork(long completionTime)
completionTime - the completion time (milliseconds since epoch) before which completed work instances are
cleared, or 0 for allvoid cleanup()
boolean isStarted()
true if activeDefaultComponent.applicationStarted(org.nuxeo.runtime.model.ComponentContext),
init(),
shutdown(long, TimeUnit)Copyright © 2015 Nuxeo SA. All rights reserved.