Java 是否可以从spring批处理的JobExecutionContext访问Tasklet
我正在尝试取消tasklet的执行,而不取消整个步骤/作业。我以一种可以基于标志取消的方式实现了tasklet。但是JobExecutionContext不提供任何介质来访问tasklet?有什么方法可以访问tasklet实例吗?这在decider中是可能的Java 是否可以从spring批处理的JobExecutionContext访问Tasklet,java,spring-batch,Java,Spring Batch,我正在尝试取消tasklet的执行,而不取消整个步骤/作业。我以一种可以基于标志取消的方式实现了tasklet。但是JobExecutionContext不提供任何介质来访问tasklet?有什么方法可以访问tasklet实例吗?这在decider中是可能的 public class MyDecider implements JobExecutionDecider { @Override public FlowExecutionStatus decide(JobExe
public class MyDecider implements JobExecutionDecider {
@Override
public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {
if (condition) {
// choose what ever you want to do
return new FlowExecutionStatus("");
}
// choose what ever you want to do
return new FlowExecutionStatus("");
}
}
例如,您可以在此处选中-这在decider中是可能的
public class MyDecider implements JobExecutionDecider {
@Override
public FlowExecutionStatus decide(JobExecution jobExecution, StepExecution stepExecution) {
if (condition) {
// choose what ever you want to do
return new FlowExecutionStatus("");
}
// choose what ever you want to do
return new FlowExecutionStatus("");
}
}
例如,您可以在此处选中-我正在从JobExecution上下文中查找实例。它将不是一个单一的bean。同一tasklet将有多个不同实现的实例。@MacleanPinto您不需要为此执行JobExecution。使用判定器检查tasklet是否已停止,并使流继续到下一步。@Mahmoud Ben Hassine我的要求是在运行时取消tasklet。我必须触发取消。到目前为止,Spring批处理允许在步骤级别取消。@Maclean Pinto您可以将tasklet放在单独的步骤中,然后您可以跳过该步骤-但我仍然建议您在我们这里讨论的所有事情都发生在运行时时时,检查决策器。您在运行时取消tasklet步骤,然后决策者在运行时检查状态并决定是否转到下一步。我认为这个用例不需要
JobExecution
。我正在从JobExecution上下文中查找实例。它将不是一个单一的bean。同一tasklet将有多个不同实现的实例。@MacleanPinto您不需要为此执行JobExecution。使用判定器检查tasklet是否已停止,并使流继续到下一步。@Mahmoud Ben Hassine我的要求是在运行时取消tasklet。我必须触发取消。到目前为止,Spring批处理允许在步骤级别取消。@Maclean Pinto您可以将tasklet放在单独的步骤中,然后您可以跳过该步骤-但我仍然建议您在我们这里讨论的所有事情都发生在运行时时时,检查决策器。您在运行时取消tasklet步骤,然后决策者在运行时检查状态并决定是否转到下一步。我认为这个用例不需要JobExecution
。