我扩展了FlowJob类,并将其设置为:
final Flow subflow1 = new FlowBuilder<Flow>("subflow1")
.start(new StepBuilder("SubFlow1-step")
.chunk(1000)
.reader(reader)
.writer(writer)
.repository(jobRepository)
.transactionManager(txManager).build())
.end();
final Flow subflow2 = new FlowBuilder<Flow>("subflow2")
.start(new StepBuilder("SubFlow2-step")
.chunk(1000)
.reader(reader)
.writer(writer)
.taskExecutor(new SimpleAsyncTaskExecutor())
.repository(jobRepository)
.transactionManager(txManager).build())
.end();
setFlow(new FlowBuilder<Flow>("Flow")
.start(new StepBuilder("Flow-step1")
.chunk(10000)
.reader(reader)
.writer(writer)
.repository(jobRepository)
.transactionManager(txManager).build())
.next(new StepBuilder("Flow-step2")
.tasklet(processor)
.repository(jobRepository)
.transactionManager(txManager).build())
.split(new SimpleAsyncTaskExecutor())
.add(subflow1, subflow2)
.end());
如你所见,我想做的如下:
当我运行作业时,步骤1和2正确执行,然后作业终止。
知道吗?
编辑:SO Spring批处理流程/步骤后拆分的相关问题。
我相信这里面有个漏洞。目前的解决方法是使用拆分创建流程,并将流程添加到作业中,如下所示:
@Bean
public Job splitJob(@Qualifier("foo") Flow foo, @Qualifier("foo") Flow bar) {
FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("split");
Flow flow = flowBuilder.split(new SimpleAsyncTaskExecutor())
.add(foo, bar)
.end();
return jobBuilderFactory.get("splitJob")
.start(myStep1())
.next(myStep2())
.on("COMPLETED").to(flow)
.end()
.build();
}
问题内容: 尝试按我想要的顺序打印页面时出现问题。在我的代码中,我输入了以下内容: 但是,当我看到页面上的显示时,它显示: JSON格式的字符串: 我需要按用户ID,数量和成功的顺序排列。已经尝试在代码中重新排序,但无济于事。我也尝试过....需要一些帮助,谢谢!! 问题答案: 你不能也不应该依赖JSON对象中元素的顺序。 来自http://www.json.org/的JSON规范 对象是名称/值
问题内容: 我正在使用Node.js运行服务器,并且需要从正在运行的另一台服务器()请求数据。我需要向数据服务器发出许多请求(〜200)并收集数据(响应大小从〜20Kb到〜20Mb不等)。每个请求都是独立的,我想将响应保存为以下形式的一个巨大数组: 请注意,项目的顺序并不重要,理想情况下,它们应该以数据可用的顺序填充数组。 现在,当运行该程序时,它将显示: 现在,由于文件的大小如此可变,我期望它可
我有一份由不同的工作组成的工作。我希望在其他作业步骤完成后,一起触发一批这些作业步骤(JobStep1、JobStep2、JobStep3)(在不同的线程中与AsyncTaskExecutor一起运行)和最后一个作业步骤(JobStep4)。因此,我为每个JobStep创建了不同的流,并用AsyncTaskExecutor将它们放在一个流中。我还为最后一个JobStep做了一个单独的流。 完成工作
我正在实现一个分页器(在Java),它应该允许并行访问。 我有以下测试用例(测试在Groovy中,带有Spock): 此testcase失败,出现以下错误: 拆分器具有 当我不使用并行时,代码可以工作。所以我不理解: 如果设置了,流框架是否应该保证顺序,并且应该在使用并行生成的块时对结果进行排序?如果是,为什么不在我的情况下排序? 还是我的实现中有错误,必须按照给定的顺序拆分?(当前我在打开页面的
我正在尝试设置log4j2以使用异步记录器将所有消息记录到滚动文件中。 是否有一种方法可以创建另一个记录程序来捕获所有事件?还有别的想法吗? 下面是我的log4j2.xml:
问题内容: 我必须对具有多个属性的列表进行排序。我可以轻松地按升序对所有属性执行此操作 但是问题是,我必须使用混合配置来进行升序/降序…我必须“模仿”一点SQL ,在SQL中您可以执行类似的操作。有没有一种方法可以在Python中轻松实现,而无需实现自定义比较功能? 问题答案: 如果您的属性是数字,则具有此属性。 如果您的属性包括字符串或其他更复杂的对象,则可以选择。 该方法很稳定:您可以进行多次