虽然我没有itemReader和itemWriter的用法,但对我来说是春季批次?

iha*_*nny 1 java spring batch-processing spring-batch

春季新手:我有一系列批次

  • 从一些sql表中读取所有新记录(自上次执行以来)
  • 所有新记录上传到hadoop
  • 所有数据(旧的和新的)运行一系列map-reduce(pig)作业
  • 所有输出下载到本地并在所有输出上运行一些其他本地处理

重点是,我没有任何明显的"项目" - 我不想与我的数据中的特定文本行相关,我将它作为一个大块工作,并且不需要任何提交间隔和这样...

但是,我确实希望保持所有这些步骤松散耦合 - 例如,步骤a + b + c可能会成功几天并累积处理过的东西而步骤d一直失败,然后当它最终成功时它会读取并处理所有它的前面步骤的输出.

SO:我的"项目"是一个虚构的"工作项目",它将表示整个新数据?我自己维护一系列队列并在它们之间传递这些虚构的工作项目?

谢谢!

Tre*_*ick 5

人们总是认为弹簧批次的唯一用途实际上只是用于块加工.这是一个巨大的功能,但忽略的是处理和作业控制的可见性.

给5个人同样的任务,没有弹簧批次,他们将以自己的方式实现流量控制和可见性.为5个人提供​​相同的任务和弹出批处理,您最终可能会以不同方式完成自定义tasklet,但是访问作业元数据以及启动和停止作业将保持一致.从我的角度来看,它是一个很好的工作管理工具.如果你已经编写了你的​​工作,你可以将它们实现为自定义tasklet,如果你不想重写它们以符合'item'范例.你仍然会看到好处.