2012-01-30 92 views
1

我是春季批處理新手。我想在服務器a上運行spring批處理作業,並希望使用spring批處理admin.is從服務器b啓動這些作業,這有可能嗎?我已經搜索了以下兩種方法:從春季批次訪問遠程彈簧批量作業管理員

1.JMX方式:我可以將spring批豆轉換爲mbeans,但我不能從spring batch admin.can中讀取它們,你告訴如何從spring batch admin讀取mbeans並啓動它們?

2.常見存儲庫:我想如果我使用相同的數據庫存儲庫的春天批處理和春天批處理然後我可以從春季批量管理員(從服務器b)啓動遠程作業。但在春季作業xml文件batch admin什麼應該是tasklet的類路徑?

你能在上面的幫助,或者如果任何新的方式中存在告訴我嗎?

回答

0

我正在嘗試做同樣的事情。但似乎爲了直接從Spring批處理管理員啓動作業,所有作業資源都必須添加到Spring批處理Web應用程序中。可嘗試寧靜作業提交與Spring MVC的

1

我們最終實現使用MQ通信來處理這個框架。每個'批處理節點'註冊自己以及'nodeType = A'或'jobSizeiCanHandle = BIG'等'批處理類'參數(這些都是虛構的,但你明白了)。客戶端控制檯讀取此信息並通過MQ查詢作業列表中的節點。然後它通過一個基本的基於文​​本的協議(屬性文件格式)提交帶有參數的工作請求。

command=START_JOB 
job=JobABC 
param1=x 
param2=y 

一個批次節點將拿起消息,並開始工作,它會返回成功/失敗狀態以相同的方式與相同相關性id的消息。所以客戶可以向用戶顯示響應。

這讓我們做你在說什麼,並通過外部調度程序(CONTROL-M)火花的作業。上面提到的'nodeType = A'允許我們查詢單個節點(節點監聽'nodeType = A或nodeType = *'的位置,這允許命令'定位'到特定節點(如果需要)。記住,這是我們自己的控制檯,而不是Spring批次管理控制檯,所以也許這對您沒有任何幫助,但構建一個簡單的控制檯不需要花費那麼長時間就可以使用Spring批處理API(4或5 asps)

批次節點也可能已經開始了簡單的服務,如HTTP REST服務或「什麼」,但我們使用MQ嚴重,我喜歡不必預註冊節點的思想(框架代碼不知道/關心它在一個HTTP容器,所以它無法輕鬆註冊端點)。使用MQ,通道是預配置的,所有的應用程序只是'你因爲它看起來更容易。

祝你好運。

0

@chau使用Spring批次管理原樣,但「發現」和「調用」遠程作業

一種方法是提供自己org.springframework.batch.admin.service.JobService和組織實施.springframework.batch.core.launch.JobOperator可以從遠程作業註冊表/存儲庫查詢和調用作業。

你可以找到JobService和JMX自定義實現工作管理員:https://github.com/regunathb/Trooper/tree/master/batch-core爲:org.trpr.platform.batch.impl.spring.admin.SimpleJobService和org.trpr.platform.batch.impl.spring.jmx 。JobAdministrator

Spring bean使用這些bean的XML如下:https://github.com/regunathb/Trooper/blob/master/batch-core/src/main/resources/packaged/common-batch-config.xml