如何在 Spring Cloud Data Flow 中为 Spring Batch 作业设置调度程序?
Posted
技术标签:
【中文标题】如何在 Spring Cloud Data Flow 中为 Spring Batch 作业设置调度程序?【英文标题】:How to set scheduler for Spring Batch jobs in Spring Cloud Data Flow? 【发布时间】:2020-02-17 02:24:58 【问题描述】:我正在设置一个新的 Spring Batch Jobs,并希望使用 SCDF
部署它。但是,我发现SCDF
不支持local framework
中的scheduler
功能。
我有 3 个问题要问你:
有人能解释一下scheduler
的SCDF
是如何工作的吗?
是否有任何方法可以使用SCDF
安排 1 个作业?
我可以将本地服务器用作 Cloud Foundry 吗?以及如何?
【问题讨论】:
欢迎来到 SO!当您提出问题时,请尝试添加最少的内容:输入样本、预期输出样本、您尝试了什么、研究以及您在哪里堆叠。你尝试了什么?你的研究呢? 请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。 @user158:在这里重新编辑,请不要在整行或段落中添加粗体 - 它不会使事情更容易阅读。同样,请不要将代码格式添加到实际上不是代码(或控制台 I/O)的内容中。 【参考方案1】:是的,Spring Cloud Data Flow 不支持在local
平台上进行调度。请注意local
SCDF 服务器仅用于开发目的,根据设计,调度支持旨在依赖于平台。因此,使用 CF 和 K8s 调度程序的 Cloud Foundry 和 Kubernetes 支持 SCDF 调度功能。
1) 能否解释一下 SCDF 的调度程序是如何工作的?
当然,与deployer
用于启动任务/部署流的方式类似,SPI 用于在spring-cloud-deployer
项目下调度任务。底层调度器实现可以实现这一点。目前,我们在spring-cloud-deployer-cloudfoundry 和spring-cloud-deployer-kubernetes 中实现了CF 和K8s 调度器。
作为用户,您可以为任务(批处理)应用程序(通过 SCDF 仪表板、shell 等)配置调度程序。您可以指定一个 cron 表达式来安排任务。配置完成后,SCDF 使用上述调度器实现将调度请求委托给平台调度器。一旦调度完成,平台(CF 上的 PCF 调度程序,K8s 上的 K8s 调度程序)使用调度来处理任务。
2) 有没有办法使用 SCDF 安排 1 个作业?
是的,根据 1 的回答
3) 我可以将我的本地服务器用作云代工厂吗?以及如何?
要在指向 CF 实例的本地运行 SCDF,您可以设置必要的 CF 部署程序属性并启动 SCDF 服务器实例。它类似于您在 SCDF 服务器中配置多平台的方式。您可以在此here 上找到更多文档。
【讨论】:
感谢您的回答。那么当我将本地服务器用作云 Foundry 时,我可以使用调度程序功能吗? 可以,只要您启用了调度功能并且调度程序 URL 指向正确的调度程序实例。 我在 application.properties 中使用了 spring.cloud.dataflow.features.schedules-enatbled: true。是您提到的调度功能吗?但是,我不知道如何设置“指向正确调度程序实例的调度程序 URL”。你有任何关于它的文件或用户手册吗?请给我一些例子?非常感谢您的帮助。 您需要将SPRING_CLOUD_SCHEDULER_CLOUDFOUNDRY_SCHEDULER_URL
属性设置为值:scheduler.<Domain-Name>
总之,我必须在本地服务器上安装云铸造(本主题中提到:***.com/questions/36596743/…)。之后,我可以指向该“本地云”上的 CF 实例以使用 SCDF 的调度程序功能。对吗?以上是关于如何在 Spring Cloud Data Flow 中为 Spring Batch 作业设置调度程序?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Cloud Data Flow 任务中外部化应用程序属性
如何在与 Spring Cloud Data Local 服务器不同的服务器上运行任务
Spring Cloud Data Flow整合UAA之使用LDAP进行账号管理