今天,我们很高兴地在 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 Issues、StackOverflow 或直接在 Twitter 上告诉我们!