我们正在尝试创建一个中央批处理服务,它将在远程(micro)服务中调用批处理过程。在此期间,我们希望暂停步骤执行,直到远程服务没有响应批处理服务。这在spring批处理中可以实现吗?
im9ewurl1#
您可以尝试实现steplistener,其中有beforstep和afterstep方法,您可以在beforstep方法调用中控制等待,直到其他服务调用完成其执行
public class StepTwoListener implements StepExecutionListener { @Override public void beforeStep(StepExecution stepExecution) { long start = System.currentTimeMillis(); try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Sleep time in ms = "+(System.currentTimeMillis()-start)); System.out.println("Before Step Execution"); }}
你可以在你的舞步里使用听众
@Bean public Step stepTwo() { return stepBuilderFactory.get("stepTwo").tasklet(new StepTwo()).listener(new StepTwoListener()).build(); }
1条答案
按热度按时间im9ewurl1#
您可以尝试实现steplistener,其中有beforstep和afterstep方法,您可以在beforstep方法调用中控制等待,直到其他服务调用完成其执行
你可以在你的舞步里使用听众