|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface WorkManager
This interface models a WorkManager which provides a facility
to submit Work instances for execution. This frees the user
from having to create Java threads directly to do work. Further, this
allows efficient pooling of thread resources and more control over thread
usage. The various stages in Work processing are:
Work instance is being submitted for
execution. The Work instance could either be accepted or
rejected with a WorkRejectedException set to an appropriate
error code.Work instance has been
accepted. The accepted Work instance could either start
execution or could be rejected again with a WorkRejectedException
set to an appropriate error code. There is no guarantee on when
the execution would start unless a start timeout duration is
specified. When a start timeout is specified, the Work
execution must be started within the specified duration (not a
real-time guarantee), failing which a WorkRejectedException
set to an error code (WorkRejected.TIMED_OUT) is thrown.Work instance has been rejected. The
Work instance could be rejected during Work submittal
or after the Work instance has been accepted (but before
Work instance starts execution). The rejection could be due
to internal factors or start timeout expiration. A WorkRejectedException
with an appropriate error code (indicates the reason) is thrown in
both cases.Work instance has
started. This means that a thread has been allocated for its
execution. But this does not guarantee that the allocated thread
has been scheduled to run on a CPU resource. Once execution is
started, the allocated thread sets up an appropriate execution
context (transaction , security, etc) and calls Work.run().
Note, any exception thrown during execution context setup or
Work.run() leads to completion of processing.Work has been
completed. The execution could complete with or without an exception.
The WorkManager catches any exception thrown during Work
processing (which includes execution context setup), and wraps it
with a WorkCompletedException.
| Field Summary | |
|---|---|
static long |
IMMEDIATE
A constant to indicate timeout duration. |
static long |
INDEFINITE
A constant to indicate timeout duration. |
static long |
UNKNOWN
A constant to indicate an unknown start delay duration or other unknown values. |
| Method Summary | |
|---|---|
void |
doWork(Work work)
Accepts a Work instance for processing. |
void |
doWork(Work work,
long startTimeout,
ExecutionContext execContext,
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 execContext,
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 execContext,
WorkListener workListener)
Accepts a Work instance for processing. |
| Field Detail |
|---|
static final long IMMEDIATE
static final long INDEFINITE
static final long UNKNOWN
| Method Detail |
|---|
void doWork(Work work)
throws WorkException
work - The unit of work to be done. Could be long or short-lived.
WorkException - generic exception
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.
void doWork(Work work,
long startTimeout,
ExecutionContext execContext,
WorkListener workListener)
throws WorkException
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.execContext - 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.
WorkException - generic exception
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.
long startWork(Work work)
throws WorkException
work - The unit of work to be done. Could be long or short-lived.
WorkException - generic exception
WorkRejectedException - indicates that a Work instance has
been rejected from further processing. This can occur due
to internal factors.
long startWork(Work work,
long startTimeout,
ExecutionContext execContext,
WorkListener workListener)
throws WorkException
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.execContext - 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.
WorkException - generic exception
WorkRejectedException - indicates that a Work instance has been
rejected from further processing. This can occur due to internal
factors or start timeout expiration.
void scheduleWork(Work work)
throws WorkException
work - The unit of work to be done. Could be long or short-lived.
WorkException - generic exception
WorkRejectedException - indicates that a Work instance has been
rejected from further processing. This can occur due to internal
factors.
void scheduleWork(Work work,
long startTimeout,
ExecutionContext execContext,
WorkListener workListener)
throws WorkException
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.execContextan - 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.
WorkException - generic exception
WorkRejectedException - indicates that a Work instance has been rejected
from further processing. This can occur due to internal factors.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||