2015-10-17 38 views
0

我們有以下要求,如何順流春季XD執行同樣的工作

  1. 春天XD,我們有工作讓我們假設中的任務名稱爲MyJob
  2. 將由另一個進程使用調用Spring xd的其餘服務,讓我們假設進程名稱爲OutsideProcess(非Spring xd進程)。
  3. 當有一個文件添加到OutsideJob正在偵聽的位置(讓我們假設FILES_LOC)時,OutsideJob會調用MyJob。

在這種情況下,我們假設MyJob需要5分鐘才能完成作業。

  1. 上午10:00,有一個文件複製到FILES_LOC,然後OutsideProcess將立即觸發MyJob。 (大約會在上午10:05完成)
  2. 上午10:01,另一個文件複製到FILES_LOC,OutsideProcess將在上午10:01觸發另一個MyJob實例。但第二個實例正在排隊並在第一個實例完成其執行後開始執行(大約在上午10:05)。

如果我們同時調用不同的作業,它們會同時執行,但同一作業中多個實例不會同時執行。

請讓我知道如何同時執行多個實例的相同作業。

在此先感謝。

回答

0

我能想到的唯一事情就是動態部署工作並立即觸發它。您可以使用SpringXD Rest模板來即時創建作業定義,並在幾秒鐘後啓動它們。並確保在作業成功完成時取消部署/銷燬作業。

另一種解決方案可能是用不同的名稱創建幾個工作模塊實例,並將它們用作從屬進程。您可以查詢這些作業模塊實例的狀態,並啓動已完成的作業或排隊最近啓動的作業模塊實例。

請記住,如果適用,您可以運行帶分區支持的作業。這樣你可以更快地完成工作,並能夠運行更多的工作。