2012-04-06 123 views
2

Sprint批處理管理員的新手問題。Spring批處理管理員:通過Web GUI安排新作業

我的要求是,用戶應該能夠安排新的就業機會(傳遞一些參數作業功能)通過Web UI。這些工作應該是持久的,將是重複性的,可以被取消或刪除。此外,可以爲上次運行作業生成報告,並列出所有現有作業及其下一次運行日期。

也許是我最重要的要求是,這應該是可能的「對飛」,不需要重新部署Web的應用程序或服務器重新啓動。

這可以使用Spring批處理管理器(我看到指南中提到上傳XML用於添加作業,但這看起來很乏味,如果有API,爲什麼我們不應該能夠在通過批量管理Web UI)?或者JDK Timer或Quartz支持它?

回答

1

一旦作業已經創建,它不能被刪除,但它can be stopped。允許從數據庫中刪除是一項風險很大的操作,因爲Spring Batch可能已經啓動了作業執行,但數據庫尚未更新。如果在這個時候刪除了這個工作,你就會有不一致的地方。

安排一項新工作在Launch Job中描述。創建新類型的作業是不可能的,因爲作業通常可能具有複雜的配置,當加載Spring上下文時該配置僅被解析一次。就業和配置

+0

謝謝。我想確定是否可以通過Web GUI調度作業,以及是否使用Spring Batch或JDK Timer或Quartz Scheduler支持。到目前爲止,我已經看到,在網絡應用程序中,所有這些預期的工作將被「配置」,並且需要「重新部署」web應用程序,而不是「即時」添加工作。 – dchucks 2012-04-06 12:43:56

+1

可以安排(=啓動)新的工作實例。它將由任務執行器運行,它可以是異步的(你應該在Spring配置中定義它)。Quartz用於按計劃運行作業,通常不需要Spring Admin控制檯來運行它們,但可能會看到執行結果。應該事先配置應該對數據做什麼(讀,塊,修改,寫),但實際數據(文件,URL,無論)可以通過參數傳遞。當然可以使用參數來調整處理本身,解釋參數含義是工作任務。 – 2012-04-06 18:20:10

+0

再次感謝!您的回答現在可以幫助我理解,最終我們需要Quartz或Cron按照計劃運行這些作業,並使用Spring Batch來處理實際的執行過程。你知道我們是否可以通過Quartz的圖形用戶界面安排工作嗎?到目前爲止,我明白你仍然需要使用屬性文件進行預配置。 – dchucks 2012-04-07 08:48:55

1

動態部署(飛),而不需要重新啓動服務器,是我們在騎兵批檔案實現了一個功能 - 這不正是Spring Batch的管理員,但建立在它。您繼續使用Spring批處理編寫作業,只需在Trooper中更改容器,即可使用其批處理文件運行時。屏幕截圖和功能都在這裏:https://github.com/regunathb/Trooper/wiki/Writing-Batch-jobs-in-Trooper

0

我認爲我們可以通過SBA部署每年春季批處理作業。我的意思是每個批處理作業都將被編譯爲一個war文件。我們一起在服務器上部署它們。通過這種方式,我們有以下來訪的網址,以便監控每個工作:

的http:// bactchjobserver/JOB1

的http:// bactchjobserver /作業2

的http:// bactchjobserver /作業3

HTTP:// bactchjobserver /作業4

但不足之處是,每個戰爭填充肯定包含LIB文件,這使得像10MB大小的每個war文件。同時,我嘗試手動添加war-file \ WEB-INF \ classes \ META-INF \ spring \ batch \ jobs和new-job.jar到war-file中的new-job.xml文件\ WEB-INF \ lib而不停止JBoss。有用。新工作可以在SBA UI中顯示並可運行。

但顯然這會導致很多維護和故障排除。這是不可實施的。