Spring batch SpringBatch:如何根据我的读者结果使用decider?
我是新来的。我发现通过使用Spring batch SpringBatch:如何根据我的读者结果使用decider?,spring-batch,Spring Batch,我是新来的。我发现通过使用ExecutionContextPromotionListener,我可以设置键值对,并在以后的步骤中获取它们 <step id="step1">....</step> <decision id="decision1">.... /> 。。。。 .... /> 当我使用Tasklet而不是reader时,我做了以下几点: 在批处理配置文件中创建了ExecutionContextPromotionListener的bean,其
ExecutionContextPromotionListener
,我可以设置键值对,并在以后的步骤中获取它们
<step id="step1">....</step>
<decision id="decision1">.... />
。。。。
.... />
当我使用Tasklet
而不是reader时,我做了以下几点:
ExecutionContextPromotionListener
的bean,其中包含预期的键侦听器注册到我的步骤
Tasklet
中从chunkContext
检索的executionContext
中,如下所示:决策器
可以从步骤执行上下文中读取如下内容并作出决定但是,我想根据上一步的读者做出决定。那么,在我的决定中,如何从读者那里获得价值呢?还是我的方法错了。请建议。简单的方法是,您可以利用步骤中的执行上下文,并将值传递到下一步 所以,在你的第一步,做一些像这样的事情
// ...
ExecutionContext stepContext = this.stepExecution.getExecutionContext();
stepContext.put("DATA_KEY", dataToShare );
然后,在下一步中,您可以使用执行上下文阅读此内容
ExecutionContext jobContext = jobExecution.getExecutionContext();
dataToShare = jobContext.get("DATA_KEY");
您只需要管理这些键—您用于在第一步中输入并在下一步中读取的键简单的方法是,您可以利用步骤中的执行上下文,并将值传递到下一步 所以,在你的第一步,做一些像这样的事情
// ...
ExecutionContext stepContext = this.stepExecution.getExecutionContext();
stepContext.put("DATA_KEY", dataToShare );
然后,在下一步中,您可以使用执行上下文阅读此内容
ExecutionContext jobContext = jobExecution.getExecutionContext();
dataToShare = jobContext.get("DATA_KEY");
您只需要管理密钥—您用于在第一步中输入并在下一步中读取的密钥您希望读取器提供什么供下一个州的决策者使用?例如,从数据库中读取一些内容。如果找到->将其传递到下一步,并根据该步骤阅读其他内容->退出。类似这样的。你希望读者提供什么供下一个州的决策者使用?比如,从数据库中读取一些内容。如果找到->将其传递到下一步,并根据该步骤阅读其他内容->退出。像这样的。