我们希望将某些Kettle导入作业的调度和顺序控制从专有实现迁移到Spring Batch风格的良好实践实现。
我打算使用Spring Cloud Data Flow(SCDF)服务器来实现并运行现有外部导入作业的可配置序列。
SCDF控制台任务编辑器UI似乎有望组合一个流程。因此,一个任务包装了一个Spring Batch,该Spring Batch在一个步骤中仅执行了一个Tasklet,用于启动和轮询Carte REST API。到目前为止,这有意义吗?
您是否建议更好的实现方式?
限制条件:
据我目前的理解,这可以通过使用Spring Cloud Data Flow(SCDF)服务器以及某些Task / Batch实现/组合来实现。
如果我错了,请更正我,但是具有其硬连线流程的单个Spring Batch作业对我来说似乎不太合适。还是有一种简单的方法来编辑和重新部署具有更改的生产流程的Spring Batch?我什么也找不到,甚至没有一个易于使用的批处理XML表示形式的编辑器。
是的,我相信您可以使用Spring Cloud Data Flow以及Spring Cloud Task / Spring Batch来实现您的设计目标。
[如您从另一个SO线程所指出的,可以使用Spring Cloud Data Flow来管理多个Spring Batch作业的流(使用组合任务)。
使用Kette REST API触发并轮询外部Kettle作业。实际上,这是一个单独的Kettle作业实现,为要导入的每个实体使用单独的参数调用。
[多个实体有一个可配置的,有向图的导入作业,其中一些依赖于先前实体类型的正确导入。 (例如,部门,然后是员工,然后是角色分配...)
同样,以上两项都可以作为组合任务进行管理(组合任务由常规任务以及基于Spring Batch的应用程序组成。
您可以在调用时通过批处理作业参数或任务/批处理应用程序属性或简单的命令行参数来管理传递给每个任务/批处理的参数。
随着即将到来的实施,我们希望监视和控制(开始,中止,暂停,继续)可重启性易于在生产中重新配置序列(可能是通过GUI或外部编辑器)可能会有一些报告和统计信息。
Spring Cloud Data Flow可帮助您实现这些目标。您可以访问Task Developer Guide和Task Monitoring Guide了解更多信息。
您也可以从站点检查Batch developer guide。