gpt4 book ai didi

java - Spring 批处理 : How exactly does executing a job all come together?

转载 作者:行者123 更新时间:2023-11-30 08:09:53 25 4
gpt4 key购买 nike

正如标题所说,整个批处理作业究竟如何与 Spring Batch 一起工作?我明白(当然,如果我错了,请纠正我)有一个存储作业的存储库,然后每个作业都有步骤,每个步骤要么是一个 tasklet,要么是 ItemReaders 和 ItemProcessors 的组合,然后是 ItemWriter when一 block 已经被填满了。

我不明白的是这一切在实际代码中的表现如何;我一直在阅读文档并查看示例,但我已经迷路了。我什至如何告诉工作在我想要的时间/地点运行?有大约一百万个以“作业”开头的类,我如何一起使用最少量的类来存储我定义的作业,然后随时随地运行它们?此外,我看到的所有示例要么完全/大部分基于 XML,但我想尽可能少地使用 XML。

另一个让我感到困惑的大问题是,ItemReader/Processor/Writers 究竟是如何知道他们正在处理的是什么项目/项目 block ?可以想象我自己实现了一个 ItemProcessor,为此,我显然需要访问它正在处理的项目来处理它,或者对于 ItemWriter,我想访问 block 它想要写入的项目数。

最佳答案

Mkyong.com有一些美好的 Spring batch tutorials它给出了一些相当清楚的例子,说明作业配置实际上是什么样子的。有关基本示例,请参见 here .不幸的是,这些示例大多是 XML 格式的。这是一个 blog post以使用 java 配置的示例为例。

就项目读取器/处理器/写入器类型而言。您通常会有一个读取器和至少一个处理器/写入器组合。两者都不是必需的。

在理解每一个方面,请查看接口(interface) - 它们可能会帮助您理清思路。例如,这是 ItemWriter 的接口(interface):

void write(java.util.List<? extends T> items)

http://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/ItemWriter.html

请注意,需要写入一批项目。处理器通常逐项处理。 Readers 可以被分页(例如,通过实现 AbstractPagingItemReader),并在实际执行提取(例如,对数据库的分页查询)之前收集迭代中的项目。

关于java - Spring 批处理 : How exactly does executing a job all come together?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32031781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com