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 消息。對於接收到的每條消息,啟動器 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 實作允許遠端分割批次作業中的 worker 作為任務啟動,而不是預先部署並要求監聽工作。這樣做的好處是,worker 只在執行工作時才部署和執行,並且在工作完成後應關閉和清理。DeployerPartitionHandler 將任務的啟動委派給 Spring Cloud Deployer 實作,因此任何支援任務啟動的 deployer 實作都可以與這個新的 PartitionHandler 一起使用。

更多範例

了解事物如何運作的最簡單方法是實際看到它們運作。因此,我們擴充了我們的範例模組,以提供此處提及的所有功能以及一些更基本的使用案例的範例。您可以在 Github 上查看我們的新範例。

接下來何去何從?

在我們發佈 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 社群中所有即將到來的活動。

查看全部