2017-04-26 91 views
0

我們有一個每1小時運行一次的批處理作業。如果批處理作業運行時間超過50分鐘,我們會終止當前執行。spring-batch getPage()返回1

如果批處理完成,退出優雅,一切都很好,並通過getPage()返回下一批次值爲0。但是,如果我們殺了長時間運行的批處理,在下一批次getPage()值是1不是0

春季是否在批次間節省了價值?上下文保存在哪裏?

回答

0

當使用有狀態ItemReader實現(那些實現ItemStream接口),閱讀器的狀態在ExecutionContext內,並且隨後內BATCH_STEP_EXECUTION_CONTEXTBATCH_JOB_EXECUTION_CONTEXT表持續。

在這裏你可以在文檔中閱讀更多關於ExecutionContexthttp://docs.spring.io/spring-batch/apidocs/org/springframework/batch/item/ExecutionContext.html

您也可以Spring Batch的位置中讀到狀態管理:https://docs.spring.io/spring-batch/reference/htmlsingle/#domainExecutionContext

+0

我們只有把所有這些表的一個表。但是,我沒有看到頁面信息被保存在任何地方。當我們開始工作時,頁面如何成爲1? – user1324887

+0

還有什麼我們可以乾的?我看到readCount被保存在'batch_job_param'表中。但是我沒有看到它被使用的關係 – user1324887