gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 01:50:43 25 4
gpt4 key购买 nike

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

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

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

我知道 SCDF 公开休息接口(interface)来按计划触发任务以及一次性触发任务,但是我希望将触发器保留在批处理本身中,因为我们需要使用单独的定义来公开 REST 接口(interface)。

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

最佳答案

Is it possible to run Spring batch application separately as a Spring boot microservice and register as a task with SCDF server?

不,SCDF 中的任务定义需要,您才能利用 SCDF 的 RESTful 端点来启动或安排其重复运行。 SCDF 中没有机制可以自动发现独立运行的任意批处理作业。除非足迹是从 SCDF 内部建立的,否则我们没有任何跟踪能力来管理独立应用程序。

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

为了让这个核心设计在 Kubernetes 和 Cloud Foundry 等云平台上工作,我们期望任务/批处理应用程序与 RESTful Controller 捆绑在一起。同样,任务也无法进行健康检查。当您添加 RESTful 性质时,就需要将其作为长时间运行的应用程序运行(因为您希望端点可以从其他服务访问),这将违反云平台中任务的设计前提。

关于java - 通过单独运行批处理微服务,在 Spring Cloud Data Flow 上部署 Spring Batch 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147845/

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