通过单独运行批处理微服务在Spring Cloud Data Flow上部署Spring Batch应用程序

时间:2019-05-15 11:05:19

标签: java spring-boot spring-batch spring-rest spring-cloud-dataflow

我有一个Spring批处理应用程序,我想有两个选项来触发批处理:

  1. 公开REST api
  2. 调度程序

通过将批处理应用程序打包为Task,我可以在单独运行的SCDF服务器上部署该应用程序。我正在SCDF服务器上创建Task类型的应用程序,并引用了批处理应用程序的jar文件。然后使用应用程序Task创建一个Task。

我知道SCDF公开了rest接口以按计划触发任务,也可以关闭任务,但是我希望将触发器保留在批处理本身中,因为我们需要使用单独的定义公开REST接口。 / p>

是否可以将Spring批处理应用程序作为Spring引导微服务单独运行并注册为SCDF服务器的任务?

1 个答案:

答案 0 :(得分:2)

  

是否可以将Spring批处理应用程序作为Spring引导微服务单独运行并注册为SCDF服务器的任务?

否,需要 来显示SCDF中的任务定义,以便您利用SCDF的RESTful端点来启动或计划其定期运行。 SCDF中没有机制可以自动发现独立运行的任意批处理作业。除非从SCDF内部建立足迹,否则我们将没有任何跟踪功能来管理独立应用程序。

要注意的另一个重要区别是:任务。 SCDF中的任务是短暂的。它们启动,执行业务操作,并在业务逻辑完成时关闭。

要使该核心设计在Kubernetes和Cloud Foundry等云平台上工作,我们不要期望Task / batch应用程序与RESTful控制器捆绑在一起。同样,没有针对任务的运行状况检查。添加RESTful性质后,就需要将其作为长时间运行的应用程序运行(因为您希望可以从其他服务访问该端点),这将违反Tasks在云平台中的设计前提。