Choosing a ThreadExecutionStrategy
ThreadWork
instances need to provide a strategy defining the execution
policies for its work. That is, how the work for a thread will be processed. The
interface that is implemented is ThreadExecutionStrategy
. The most
important aspect of this is how exceptions will be treated with respect to
transactions.
- Should all the
ThreadWorkUnits
be wrapped in a single transaction with a single rollback on an exception? - Should each
ThreadWorkUnit
be in its own transaction? - Should the framework attempt to process many
ThreadWorkUnits
within a single transaction? - If an exception occurs should the framework back up and reprocess the successful units?
- In general, new background processes are expected to chose from existing instances of
ThreadExecutionStrategy
, not create new ones. Please scan for existing implementations ofThreadExecutionStrategy
.