【发布时间】:2012-01-23 15:24:54
【问题描述】:
spring-batch newbie:我有一系列的批次
- 从一些 sql 表中读取所有新记录(自上次执行以来)
- 上传所有新记录到hadoop
- 对所有数据(新旧)运行一系列 map-reduce (pig) 作业
- 将全部输出下载到本地并在所有输出上运行其他一些本地处理
重点是,我没有任何明显的“项目”——我不想与数据中的特定文本行相关,我将所有这些作为一大块处理,不想要任何提交间隔等...
但是,我确实希望将所有这些步骤保持松散耦合 - 例如,步骤 a+b+c 可能会成功几天并累积已处理的内容,而步骤 d 一直失败,然后当它最终成功时,它将读取并处理之前步骤的所有输出。
SO:我的“项目”是一个虚构的“工作项目”,它将表示整个新数据吗?我是否自己维护一系列队列并在它们之间传递这个虚构的工作项?
谢谢!
【问题讨论】:
-
我真的很喜欢 Spring Batch,我很确定您可以使用它来实现您的用例,但我不确定您为什么要使用 Spring Batch? * 你不需要提交行为 * 显然你不需要重启,那么你希望从使用 Spring Batch 中得到什么?
-
公平的问题:我想在失败时重试,我希望能够从失败的最后一步恢复,并且当一个步骤多次执行而没有下一步运行时(hadoop 集群已关闭)和接下来的步骤终于变得可用(hadoop 已启动)-> 我希望它在多次执行中消耗现在可用的所有块。春批不适合我吗?
标签: java spring batch-processing spring-batch