2012-03-18 43 views
0

我想知道爲什麼要使用Spring批處理,而不是Ruby等腳本語言來運行批處理作業。Spring批處理vs {任何腳本語言}

我正在研究需要反覆運行的東西,並認爲Spring Batch聽起來很有趣,因爲您可以使用POJO。事情是,我已經有一個工作經理,可以運行我告訴它的任何事情,並在出現任何問題時提醒我。春季批次仍然是有用的這種情況或否?

感謝您的輸入。

+0

請在您的問題中添加一些細節,現在我看不到批處理的要求,作業管理不是批處理,Ruby也不是批處理語言(afaik) – 2012-03-18 10:26:45

回答

3

爲什麼人會使用Spring Batch的通過腳本語言如Ruby

好吧,如果Ruby有運行批處理作業的基礎設施,它可以與Spring Batch的競爭。否則,你將不得不從頭開始寫很多東西。基礎非常重要:不僅是定期處理,還包括異常處理,數據提供者和數據使用者的連接器。如果你覺得你可以用Ruby編程所有東西 - 繼續。否則,請閱讀Spring Batch docu,並瞭解提供的功能如何使您的生活更輕鬆。

,因爲你可以使用POJO的

那麼,你需要更具體的在這裏。特定於業務的對象(流過Spring批處理)通常可以是而不是 POJO和Spring Batch不關心這個問題。但是Spring批處理類的編程方式可以很容易地集成到Spring中,因此它們擁有可以調整的部分的setter/getters。

,可以運行任何我告訴它,並提醒我,如果有什麼差錯

從你所提到的東西,至少你只有「作業管理」的一部分,但沒有「批處理「部分。這更加棘手:從源代碼讀取數據塊,轉換並將其寫入目標。這包括適當的事務管理和應該重做塊的情況的處理,或塊不能重新啓動,並且需要重做整個工作或跳過塊。

0

Sidekiq是Ruby中的一些東西,你可以試試。它是一個簡單的隊列支持任務處理機制。這是我見過的最接近的批處理,以及在失敗時重試。它支持運行多個工作者來處理同一隊列的能力。缺點是你的工人應該是冪等的,沒有一個國家的概念。我知道Batsir試圖解決這個問題,但我沒有嘗試過。

Sidekiq - 簡單且更容易升級 Spring批處理 - 工作流引擎,可以進行微調但稍微難以升級。

簽出帶批處理管理器的Spring批處理,如果你願意,那可能會給你一個很好的Spring批處理概述。現在我正試圖使用​​JRuby來啓動Spring Batch並運行,以便我可以使用Ruby編寫我的工作。這是另一種選擇。

那些只是我的兩美分。