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 社群所有即將舉行的活動。

檢視全部