public class SimpleWorkManager extends java.lang.Object implements WorkManager
Modifier and Type | Class and Description |
---|---|
static class |
SimpleWorkManager.WorkType |
IMMEDIATE, INDEFINITE, UNKNOWN
Constructor and Description |
---|
SimpleWorkManager(java.util.concurrent.Executor executor) |
Modifier and Type | Method and Description |
---|---|
void |
doWork(Work work)
Accepts a
Work instance for processing. |
void |
doWork(Work work,
long startTimeout,
ExecutionContext executionContext,
WorkListener workListener)
Accepts a
Work instance for processing. |
void |
scheduleWork(Work work)
Accepts a
Work instance for processing. |
void |
scheduleWork(Work work,
long startTimeout,
ExecutionContext executionContext,
WorkListener workListener)
Accepts a
Work instance for processing. |
long |
startWork(Work work)
Accepts a
Work instance for processing. |
long |
startWork(Work work,
long startTimeout,
ExecutionContext executionContext,
WorkListener workListener)
Accepts a
Work instance for processing. |
public SimpleWorkManager(java.util.concurrent.Executor executor)
public void doWork(Work work) throws WorkException
WorkManager
Work
instance for processing. This call
blocks until the Work
instance completes execution.
There is no guarantee on when the accepted Work
instance would start execution ie., there is no time constraint
to start execution. (that is, startTimeout=INDEFINITE)doWork
in interface WorkManager
work
- The unit of work to be done.
Could be long or short-lived.WorkRejectedException
- indicates that a
Work
instance has been rejected from further processing.
This can occur due to internal factors.WorkCompletedException
- indicates that a
Work
instance has completed execution with an exception.WorkException
public void doWork(Work work, long startTimeout, ExecutionContext executionContext, WorkListener workListener) throws WorkException
WorkManager
Work
instance for processing. This call
blocks until the Work
instance completes execution.doWork
in interface WorkManager
work
- The unit of work to be done.
Could be long or short-lived.startTimeout
- a time duration (in milliseconds)
within which the execution of the Work
instance must
start. Otherwise, the Work
instance is rejected with a
WorkRejectedException
set to an appropriate error code
(WorkRejectedException.TIMED_OUT
). Note, this
does not offer real-time guarantees.executionContext
- an object containing the execution
context with which the submitted Work
instance must
be executed.workListener
- an object which would be notified
when the various Work
processing events (work accepted,
work rejected, work started, work completed) occur.WorkRejectedException
- indicates that a
Work
instance has been rejected from further processing.
This can occur due to internal factors or start timeout expiration.WorkCompletedException
- indicates that a
Work
instance has completed execution with an exception.WorkException
public long startWork(Work work) throws WorkException
WorkManager
Work
instance for processing. This call
blocks until the Work
instance starts execution
but not until its completion. There is no guarantee on when
the accepted Work
instance would start
execution ie., there is no time constraint to start execution.
(that is, startTimeout=INDEFINITE)startWork
in interface WorkManager
work
- The unit of work to be done.
Could be long or short-lived.Work
acceptance until start of execution. Note, this does not offer
real-time guarantees. It is valid to return -1, if the actual start
delay duration is unknown.WorkRejectedException
- indicates that a
Work
instance has been rejected from further processing.
This can occur due to internal factors.WorkException
public long startWork(Work work, long startTimeout, ExecutionContext executionContext, WorkListener workListener) throws WorkException
WorkManager
Work
instance for processing. This call
blocks until the Work
instance starts execution
but not until its completion. There is no guarantee on when
the accepted Work
instance would start
execution ie., there is no time constraint to start execution.startWork
in interface WorkManager
work
- The unit of work to be done.
Could be long or short-lived.startTimeout
- a time duration (in milliseconds)
within which the execution of the Work
instance must
start. Otherwise, the Work
instance is rejected with a
WorkRejectedException
set to an appropriate error code
(WorkRejectedException.TIMED_OUT
). Note, this
does not offer real-time guarantees.executionContext
- an object containing the execution
context with which the submitted Work
instance must
be executed.workListener
- an object which would be notified
when the various Work
processing events (work accepted,
work rejected, work started, work completed) occur.Work
acceptance until start of execution. Note, this does not offer
real-time guarantees. It is valid to return -1, if the actual start
delay duration is unknown.WorkRejectedException
- indicates that a
Work
instance has been rejected from further processing.
This can occur due to internal factors or start timeout expiration.WorkException
public void scheduleWork(Work work) throws WorkException
WorkManager
Work
instance for processing. This call
does not block and returns immediately once a Work
instance has been accepted for processing. There is no guarantee
on when the submitted Work
instance would start
execution ie., there is no time constraint to start execution.
(that is, startTimeout=INDEFINITE).scheduleWork
in interface WorkManager
work
- The unit of work to be done.
Could be long or short-lived.WorkRejectedException
- indicates that a
Work
instance has been rejected from further processing.
This can occur due to internal factors.WorkException
public void scheduleWork(Work work, long startTimeout, ExecutionContext executionContext, WorkListener workListener) throws WorkException
WorkManager
Work
instance for processing. This call
does not block and returns immediately once a Work
instance has been accepted for processing.scheduleWork
in interface WorkManager
work
- The unit of work to be done.
Could be long or short-lived.startTimeout
- a time duration (in milliseconds)
within which the execution of the Work
instance must
start. Otherwise, the Work
instance is rejected with a
WorkRejectedException
set to an appropriate error code
(WorkRejectedException.TIMED_OUT
). Note, this
does not offer real-time guarantees.executionContext
- an object containing the execution
context with which the submitted Work
instance must
be executed.workListener
- an object which would be notified
when the various Work
processing events (work accepted,
work rejected, work started, work completed) occur.WorkRejectedException
- indicates that a
Work
instance has been rejected from further processing.
This can occur due to internal factors.WorkException