javascript
SpringBatch 监听器之Job监听器(JobExecutionListener)和Step监听器(StepExecutionListener)(五)
文章目錄
- 一、Job監聽器-JobExecutionListener
- 二、Step監聽器-StepExecutionListener
前言:例我們在執行job時候,可能需要在job執行之前預先對一些數據做處理,或者在job執行之后需要做一些處理。這時候我們就可以使用到監聽器來幫做我們處理,SpringBatch已經幫我們預先留好接口了。
代碼已上傳GitHub上面地址:https://github.com/FadeHub/spring-boot-learn/tree/master/spring-boot-springbatch
在spring batch中主要以以下七種監聽器為主:
- Step監聽器 :監聽step的執行開始和結束;
- Job監聽器 :監聽job的執行開始和結束;
- SkipListener監聽器 :在讀、處理、寫的過程中,監聽跳過的異常;
- ChunkListener監聽器 :監聽的chunk的執行開始和結束,或者監聽chunk出錯
- ItemReadListener監聽器:監聽 讀之前、讀之后、讀的時候發生錯誤
- ItemProcessListener監聽器:監聽 處理之前、處理之后、處理的時候發生錯誤
- ItemWriteListener監聽器:監聽 寫之前、寫之后、寫的時候發生錯誤
SpringBatch其它文章直通車:
- SpringBatch讀單個文件(FlatFileItemReader)和寫單個文件(FlatFileItemWriter)(一)
- SpringBatch順序讀取多文件(MultiResourceItemReader)和順序寫文件(MultiResourceItemWriter)(二)
- SpringBatch讀數據庫(MyBatisPagingItemReader)(三)
- SpringBatch讀文件(FlatFileItemReader)寫據庫(MyBatisBatchItemWriter)(四)
- SpringBatch 監聽器之Job監聽器(JobExecutionListener)和Step監聽器(StepExecutionListener)(五)
- SpringBatch 監聽器之Chunk監聽器(ChunkListener)和Skip監聽器(SkipListener)(六)
- SpringBatch 配置多線程(TaskExecutor)啟動Job詳解 (七)
一、Job監聽器-JobExecutionListener
Job監聽器有兩種實現方式:
1、使用注解@BeforeJob、@AfterJob
2、實現接口JobExecutionListener
我們以第二種實現方式為例 實現JobExecutionListener
CatJobListener
package com.sl.listener;import org.springframework.batch.core.JobExecution; import org.springframework.batch.core.JobExecutionListener; import org.springframework.stereotype.Component;/*** job監聽器* @author shuliangzhao* @Title: CatJobListener* @ProjectName spring-boot-learn* @Description: TODO* @date 2019/9/11 19:24*/ @Component public class CatJobListener implements JobExecutionListener {@Overridepublic void beforeJob(JobExecution jobExecution) {System.out.println("job執行執行做處理");}@Overridepublic void afterJob(JobExecution jobExecution) {System.out.println("job執行執行做處理");} }在創建job時候添加監聽器
@Beanpublic Job catJob() {return jobBuilderFactory.get("catJob").start(catStep()).listener(catJobListener).build();}二、Step監聽器-StepExecutionListener
step監聽器有兩種實現方式:
1、使用注解@BeforeStep、@AfterStep
2、實現接口StepExecutionListener
我們以第二種實現方式為例 實現StepExecutionListener
CatStepListener
package com.sl.listener;import org.springframework.batch.core.ExitStatus; import org.springframework.batch.core.StepExecution; import org.springframework.batch.core.StepExecutionListener; import org.springframework.stereotype.Component;/*** @author shuliangzhao* @Title: CatStepListener* @ProjectName spring-boot-learn* @Description: TODO* @date 2019/9/11 19:48*/ @Component public class CatStepListener implements StepExecutionListener {@Overridepublic void beforeStep(StepExecution stepExecution) {System.out.println("step執行之前");}@Overridepublic ExitStatus afterStep(StepExecution stepExecution) {System.out.println("step執行之后");return null;} }在創建step添加監聽器
@Beanpublic Step catStep() {return stepBuilderFactory.get("catStep").listener(catStepListener).<Cat, CafeCat>chunk(10).reader(catCommonMybatisItemReader()).processor(cafeCatProcessor).writer(cafeCatCommonFileItemWriter()).build();}以上是Job監聽器和Step監聽器的簡單用法。我們可以根據自己的業務場景靈活運用,會對你的代碼有很大幫助。
總結
以上是生活随笔為你收集整理的SpringBatch 监听器之Job监听器(JobExecutionListener)和Step监听器(StepExecutionListener)(五)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBatch读文件(FlatF
- 下一篇: SpringBatch 多线程(Task