今天,我们很高兴地介绍 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 Task 1.0 GA(我们计划在 Spring Cloud Data Flow 1.0 GA 之前发布),将添加支持此工作的功能。
告诉我们您的想法!
Spring Cloud Task 是一个令人兴奋的新项目,我们认为它填补了企业开发中一个服务不足的领域。然而,我们想知道您的想法。请通过 Github Issues、StackOverflow 或直接在 Twitter 上告知我们!