Class StepExecutionSimpleCompletionPolicy
java.lang.Object
org.springframework.batch.core.resource.StepExecutionSimpleCompletionPolicy
- All Implemented Interfaces:
StepExecutionListener,StepListener,CompletionPolicy
public class StepExecutionSimpleCompletionPolicy
extends Object
implements StepExecutionListener, CompletionPolicy
A CompletionPolicy that picks up a commit interval from
JobParameters by listening to the start of a step. Use anywhere that
a CompletionPolicy can be used (usually at the chunk level in a
step), and inject as a StepExecutionListener into the surrounding
step. N.B. only after the step has started will the completion policy be
usable.
It is easier and probably preferable to simply declare the chunk with a
commit-interval that is a late-binding expression (e.g.
#{jobParameters['commit.interval']}). That feature is available
from of Spring Batch 2.1.7.
- Author:
- Dave Syer, Mahmoud Ben Hassine
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbeforeStep(StepExecution stepExecution) Set up aSimpleCompletionPolicywith a commit interval taken from theJobParameters.booleanisComplete(RepeatContext context) Allow policy to signal completion according to internal state, without having to wait for the callback to complete.booleanisComplete(RepeatContext context, RepeatStatus result) Determine whether a batch is complete given the latest result from the callback.voidsetKeyName(String keyName) Public setter for the key name of a Long value in theJobParametersthat will contain a commit interval.start(RepeatContext parent) Create a new context for the execution of a batch.toString()Delegates to the wrappedCompletionPolicyif set, otherwise returns the value ofsetKeyName(String).voidupdate(RepeatContext context) Give implementations the opportunity to update the state of the current batch.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.springframework.batch.core.StepExecutionListener
afterStep
-
Constructor Details
-
StepExecutionSimpleCompletionPolicy
public StepExecutionSimpleCompletionPolicy()
-
-
Method Details
-
setKeyName
Public setter for the key name of a Long value in theJobParametersthat will contain a commit interval. Defaults to "commit.interval".- Parameters:
keyName- the keyName to set
-
beforeStep
Set up aSimpleCompletionPolicywith a commit interval taken from theJobParameters. If there is a Long parameter with the given key name, the intValue of this parameter is used. If not an exception will be thrown.- Specified by:
beforeStepin interfaceStepExecutionListener- Parameters:
stepExecution- instance ofStepExecution.- See Also:
-
isComplete
Description copied from interface:CompletionPolicyDetermine whether a batch is complete given the latest result from the callback. If this method returns true thenCompletionPolicy.isComplete(RepeatContext)should also (but not necessarily vice versa, since the answer here depends on the result).- Specified by:
isCompletein interfaceCompletionPolicy- Parameters:
context- the current batch context.result- the result of the latest batch item processing.- Returns:
- true if the commit interval has been reached or the result indicates completion
- See Also:
-
isComplete
Description copied from interface:CompletionPolicyAllow policy to signal completion according to internal state, without having to wait for the callback to complete.- Specified by:
isCompletein interfaceCompletionPolicy- Parameters:
context- the current batch context.- Returns:
- if the commit interval has been reached
- See Also:
-
start
Description copied from interface:CompletionPolicyCreate a new context for the execution of a batch. N.B. implementations should not return the parent from this method - they must create a new context to meet the specific needs of the policy. The best way to do this might be to override an existing implementation and use theRepeatContextto store state in its attributes.- Specified by:
startin interfaceCompletionPolicy- Parameters:
parent- the current context if one is already in progress.- Returns:
- a new
RepeatContext - See Also:
-
update
Description copied from interface:CompletionPolicyGive implementations the opportunity to update the state of the current batch. Will be called once per callback, after it has been launched, but not necessarily after it completes (if the batch is asynchronous).- Specified by:
updatein interfaceCompletionPolicy- Parameters:
context- the value returned by start.- See Also:
-
toString
Delegates to the wrappedCompletionPolicyif set, otherwise returns the value ofsetKeyName(String).
-