如何配置Spring批處理(使用Java配置)在單個事務中寫入所有塊?Spring批處理Java配置提交間隔
我有一個簡單的簡單的Spring批處理作業,只需一步。該步驟由JdbcCursorItemReader
,一個自定義項目處理器和一個自定義項目編寫器組成。目前,我在StepBuilder
上設置了塊大小。這似乎也將提交間隔設置爲相同的值。一方面,我不想將所有項目加載到內存中,因此需要面向塊的處理。另一方面,處理器需要對所有項目進行單個事務,而不僅僅是當前塊中的項目。它不會將項目存儲在內存中。沒關係,如果#write
被多次調用。
如何使用Java配置來實現?
我不知道這是否可以用一個步驟執行偵聽器來完成。 –
我想可能是。我們將嘗試在beforeStep方法中打開事務,並在afterStep方法中提交它。我不確定的是:我們能以某種方式配置作者使用我們自己的事務嗎?但是,仍然存在這個問題,我們繞過了SB的核心概念。而且,它也只適用於小的工作量,因爲我們通常不想長時間運行事務。 –