2010-11-03 128 views
1

我最近開始學習Spring批處理,以便利用其一些更高級的功能,如異步批處理,​​作業停止和調度來替換某些現有的批處理功能,並實現新的批處理功能。現在,我試圖弄清楚如何動態處理多個批處理文件併爲每個輸入文件生成一個「收據」文件,而且我被Spring Batch架構師的一些設計決策搞糊塗了。這似乎是爲了處理一個簡單的平面CSV文件並生成輸出,我將不得不手動破解我的ApplicationContext中的bean,並在運行時手動設置它們的「資源」屬性,以達到我想要的FlatFileItemReader和FlatFileItemWriter。對於據稱是多線程,高性能批處理框架的東西來說,這既不安全也不好。我只是想念一些東西?動態處理多個批處理文件並使用Spring批生成相應的輸出文件

+0

我已經回答了屬性黑客的問題:通過在bean上使用scope =「step」,可以使與Job有關的bean獨特於JobInstance,這是Spring Batch提供的Spring Framework的補充,但我仍在尋找一種簡單的方法將'n'個輸入批次映射到'n'個輸出批次。 – 2010-11-03 19:01:39

+0

亞歷克斯你仍然在尋找一個如何製作一個通用作業來處理多個源文件並輸出收據文件的問題的答案嗎? – 2011-09-02 12:55:16

回答

0

事實證明,我誤解了一些文檔。 Spring Batch引入了一個新的bean作用域「step」,並使用它來爲批處理流程中的每個步驟創建新的Bean,這些bean基於bean,配置中爲讀者和作者提供了該名稱。然後使用Spring的EL動態配置它們。至於獲得多個批處理,我只是完成一個批處理定義的配置,然後將多個批處理處理推送到代碼中。

+0

你能幫我用這個http://stackoverflow.com/questions/7878122/dataloader-using-spring-batch-partitioning – 2011-10-26 03:01:07

0

好像您可能會使用MultiResourceItemReader指定多個資源並將FlatFileItemReader設置爲MultiResourceItemReaders委託。

+0

我已經看過這樣做了,但沒有(方便的)方法來複用輸入文件中的輸出文件。 – 2011-01-04 20:01:20