public interface Work extends java.lang.Runnable
WorkItem.getResult()method will return the copy in this case.
If the Work does not implement Serializable then it is guaranteed to execute in the same JVM as the thread invoking WorkManager.startWork.
If the server is quiescing then the runtime may call the release method on the Work once it starts executing to tell it to exit. If it doesn't respond to this 'signal' then it may be terminated by the runtime without warning.
The Java EE context active on the thread during WorkManager scheduling
will be applied to the
run method. See
WorkManager for details.
|Modifier and Type||Method and Description|
This should return true if the work is long lived (Daemon) versus short-lived.
The implementor should return from the Runnable.run method once this is called.
This method can be called by the runtime when the JVM is shutting down. This method is not called using the Work creator Java EE context and hence it cannot access any JNDI resources reliably. It should simply set any variables used to terminate the main loop in run and return. This method is also called on a different thread than the one used for the run method so the application should use inter-thread communication techniques (i.e. synchronized etc).
Non-daemon Works are allocated from a thread pool and normally should not last longer than the submitting container method. The submitting method should wait until the short-lived (non-daemon) work is complete if using resources that are only valid during the method's duration.
Daemon Works are not allocated from a thread pool and will automatically be released when the submitting application ends.