如何在 Spring 批次中给出 FAILED 状态
How can I give FAILED status in Spring Batch
当作者的结果不符合我自己的条件时,我想在 spring 批次中给出 FAILED 状态。
我在哪里可以给出 BatchStauts is Failed on my code?
// writer
override fun write(input: MutableList<out Long>) {
...
if ((-1) * result <= remainAmount) {
println("SUCCESS")
} else {
println("HOW CAN I GIVE FAILED STATUS?")
}
}
}
//step
@Bean("verifyStep")
fun verifyStoreGroupCouponStep(): Step {
return stepBuilderFactory!!.get("verifyStep")
.chunk<Long, Long>(10000)
.reader(getIdReader)
.writer(verifyWriter)
.build()
}
从您的 else
块中抛出异常。 Spring 批处理会将作业标记为 FAILED
in BATCH_JOB_EXECUTION
table.
您可以实现StepExecutionListener 接口,该接口提供beforeStep() 和afterStep() 方法。
因此,当您的条件不满足时,在 write() 方法中设置一个标志,您可以在 afterStep() 方法中验证该标志,并且在该方法中您可以 return ExitStatus.FAILED。如图:
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
if (!condition)
return ExitStatus.FAILED;
else
return ExitStatus.COMPLETED;
}
当作者的结果不符合我自己的条件时,我想在 spring 批次中给出 FAILED 状态。
我在哪里可以给出 BatchStauts is Failed on my code?
// writer
override fun write(input: MutableList<out Long>) {
...
if ((-1) * result <= remainAmount) {
println("SUCCESS")
} else {
println("HOW CAN I GIVE FAILED STATUS?")
}
}
}
//step
@Bean("verifyStep")
fun verifyStoreGroupCouponStep(): Step {
return stepBuilderFactory!!.get("verifyStep")
.chunk<Long, Long>(10000)
.reader(getIdReader)
.writer(verifyWriter)
.build()
}
从您的 else
块中抛出异常。 Spring 批处理会将作业标记为 FAILED
in BATCH_JOB_EXECUTION
table.
您可以实现StepExecutionListener 接口,该接口提供beforeStep() 和afterStep() 方法。 因此,当您的条件不满足时,在 write() 方法中设置一个标志,您可以在 afterStep() 方法中验证该标志,并且在该方法中您可以 return ExitStatus.FAILED。如图:
@Override
public ExitStatus afterStep(StepExecution stepExecution) {
if (!condition)
return ExitStatus.FAILED;
else
return ExitStatus.COMPLETED;
}