今天,我们很高兴在 Spring 产品组合中推出一个新项目,Spring Cloud Task。在 Spring Cloud 项目组的统领下,以及 Spring Cloud Stream 的姊妹项目,Spring Cloud Task 旨在为基于 Spring Boot 的应用程序提供支持短期微服务所需的功能。通过这篇博文,我们发布了该项目的第一个里程碑,并渴望获得您的意见和反馈。
Spring Cloud Task 的目标
在大多数情况下,现代云环境是围绕执行预期不会结束的流程而设计的(例如 Web 应用程序或流模块)。如果它们确实结束了,则平台将其视为失败,并且通常会重新启动它们。虽然许多平台确实有一些方法可以执行预期会结束的流程(例如批处理作业),但该执行的结果通常不会以可消费的方式维护。然而,对于关键任务应用程序,即使它们是短期的,它们仍然具有与长期运行流程相同的非功能性需求。
虽然此功能在云环境中很有用,但同样的问题也可能出现在传统的部署模型中。当通过像 cron 这样的调度程序执行 Spring Boot 应用程序时,能够在应用程序完成后监视其结果会很有用。
Spring Cloud Task 采用了一种方法,即 Spring Boot 应用程序可以有开始和结束,并且仍然是生产级的。批处理应用程序只是短期流程可以提供帮助的一个示例。
入门
在此 Spring Cloud Task 的第一个版本中,我们介绍了配置机制的基础知识以及记录任务执行时发生情况的存储库。熟悉 Spring Batch 及其作业存储库的人应该会发现 Spring Cloud Task 的通用范式很熟悉。
要熟悉 Spring Cloud Task,最简单的方法是编写一个应用程序。文档引导您完成创建初始任务及其执行的过程。您可以在 此处 阅读更多相关内容。
我们的目标
在即将发布的版本中,任务将成为 Spring Cloud Data Flow 中的一个新原语,允许用户将几乎任何 Spring Boot 应用程序作为短期任务执行。这提供了灵活性,可以以动态方式运行从简单的CommandLineRunner
到完整的批处理作业的所有内容,允许按需使用资源并在完成后返回。即将发布的版本(包括我们计划在 Spring Cloud Data Flow 发布 1.0 GA 之前发布的 Spring Cloud Task 1.0 GA)将添加支持该工作的功能。
告诉我们您的想法!
Spring Cloud Task 是一项新颖而令人兴奋的项目,我们认为它填补了企业开发中未得到充分满足的领域。但是,我们想知道您的想法。请通过 Github 问题、StackOverflow 或直接在 Twitter 上告诉我们!