Spring Cloud Task 1.0.0.M2 现已可用

发布 | Michael Minella | 2016 年 4 月 29 日 | ...

我们很高兴地宣布 Spring Cloud Task 1.0.0.M2 版本发布。这是 Spring Cloud Task 项目的第二个里程碑,带来了一些令人兴奋的新特性!

新特性?

随着 Spring Cloud Task 的 M1 版本发布,我们引入了任务的概念、@EnableTask 注解以及具有终结状态的微服务的一般概念。从那时起,我们一直非常忙碌。新特性的一些亮点包括:

  • Spring Cloud Task 监听器
  • 与 Spring Cloud Stream 集成
  • 与 Spring Batch 集成
  • 更多示例

让我们看看每个特性都包含什么。

Spring Cloud Task 监听器

在任务执行之前或之后(或两者)执行逻辑可能很有用。此版本引入了一个接口 TaskExecutionListener 以及注解 @BeforeTask@AfterTask,允许用户定义在任务执行之前或完成后执行的逻辑。

与 Spring Cloud Stream 集成

将 Spring Cloud Task 与 Spring Cloud Stream 集成,为开发者编排数据微服务创建了一个强大的工具。在此版本的 Spring Cloud Task 中,我们在这两个项目之间添加了一些集成点。

第一个集成点是能够基于通过流发送的消息启动任务。通过使用 @EnableTaskLauncher 注解和正确的依赖项创建一个 Boot 应用程序,您将获得一个 Spring Cloud Stream Sink,它监听 TaskLaunchRequest 消息。对于接收到的每条消息,launcher sink 将启动请求的任务。

@SpringBootApplication
@EnableTaskLauncher
public class TaskSinkApplication {

	public static void main(String[] args) {
		SpringApplication.run(TaskSinkApplication.class, args);
	}
}

截至本文撰写之时,本地和 Apache YARN 的启动器均已可用,CloudFoundry、Apache Mesos 和 Kubernetes 的启动器目前都在开发中。

Spring Cloud Task 和 Spring Cloud Stream 之间的另一个集成点是 Spring Cloud Task 将事件发布到 Spring Cloud Stream 通道的能力。在您的项目中添加 spring-cloud-task-stream 依赖项(以及您选择的 Spring Cloud Stream binder),任务将在启动和结束时自动发出消息。具体来说,任务将在这些点发出 TaskExecution,允许上游应用程序在任务启动、结束以及获取结果时收到通知。

与 Spring Batch 集成

使用 Spring Cloud Task 的一个常见用例是运行 Spring Batch 作业。因此,我们在一个新模块 spring-cloud-task-batch 中添加了这两个项目之间几个有趣的集成点。

第一个集成点是通过 Spring Cloud Stream 通道发送批处理信息性消息。类似于 Spring XD 容器提供的功能,作为任务运行的批处理作业(具有适当的依赖项)可以在无需额外配置的情况下发出信息性消息。以下监听器会发出某种事件:

  • JobExecutionListener
  • StepExecutionListener
  • ChunkListener
  • ItemReadListener
  • ItemProcessListener
  • ItemWriteListener
  • SkipListener

第二个集成点是一个新的 PartitionHandler,即 DeployerPartitionHandler。此 PartitionHandler 实现允许远程分区批处理作业中的工作节点作为任务启动,而不是提前部署并要求监听工作。这带来的好处是工作节点只在执行工作时才部署和运行,并且一旦工作完成就应该关闭和清理。DeployerPartitionHandler 将任务的启动委托给 Spring Cloud Deployer 实现,因此任何支持任务启动的 deployer 实现都可以与这个新的 PartitionHandler 一起使用。

更多示例

理解事物如何工作最简单的方法是亲眼看到它们运行。因此,我们加强了示例模块,提供了此处提到的所有功能的示例以及一些更基本的使用案例。您可以在 Github 上查看我们的新示例。

下一步计划?

在我们发布 RC 版本之前还有一些工作要做,RC 版本应该与 Spring Cloud Data Flow 的相关发布同步。我们将忙于处理 Spring Cloud Task 中的任何最终问题,并提供 Spring Cloud Data Flow 所需的任何其他功能。

告诉我们您的想法!

Spring Cloud Task 是一个令人兴奋的新项目,我们认为它填补了企业开发中一个服务不足的领域。但是,我们想知道您的想法。请通过 Github IssuesStackOverflow 或直接在 Twitter 上告诉我们!

获取 Spring 新闻通讯

订阅 Spring 新闻通讯保持联系

订阅

先行一步

VMware 提供培训和认证,加速您的进步。

了解更多

获取支持

Tanzu Spring 通过一项简单的订阅提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看全部