为了账号安全,请及时绑定邮箱和手机立即绑定

当我运行 spring 批处理作业时,chunkListener 不运行

当我运行 spring 批处理作业时,chunkListener 不运行

哈士奇WWW 2021-07-28 16:46:27
我在 springBatch 作业中使用 checkListener 和 readListener 作为我用来学习 springbatch 的示例。但是当我运行作业时,chunkListener 不运行,只有 readListener 与作业一起运行。personChunkListener.java:     package sb.dbToxml;        import javax.batch.api.chunk.listener.ChunkListener;        public class PersonChunkListener implements ChunkListener        {          @Override          public void afterChunk() throws Exception          {            System.out.println("after chunk ....***************");          }          @Override          public void beforeChunk() throws Exception          {            System.out.println("before chunk ....***************");          }          @Override          public void onError(Exception arg0) throws Exception          {            // TODO Auto-generated method stub          }        }this is the configuration xml file for spring batch context spring-batch-context.xml :    <?xml version="1.0" encoding="UTF-8"?>        <beans xmlns="http://www.springframework.org/schema/beans"            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            xsi:schemaLocation="http://www.springframework.org/schema/beans                                http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">        <import resource="../jobs/jobPerson.xml" />        <import resource="../config/spring-datasource.xml" />        <!-- <context:annotation-config /> <tx:annotation-driven transaction-manager="transactionManager"/>a             PlatformTransactionManager is still required -->        <!-- JobRepository and JobLauncher are configuration/setup classes -->        <bean id="jobRepository"            class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean">            <property name="dataSource" ref="dataSourceBatch" />            <property name="transactionManager" ref="transactionManager" />            <property name="databaseType" value="oracle" />        </bean>
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

该ChunkListener是有关chunk的配置,因此它需要内部被定义chunk这样的标签:


<batch:job id="personJob">

    <batch:step id="step1bb1" >

        <batch:tasklet transaction-manager="transactionManager">

            <batch:chunk reader="itemReader" writer="itemWriter" commit-interval="10" >

               <batch:listeners>

                  <batch:listener ref="chunkListener"/>

               </batch:listeners>

            </batch:chunk>

        </batch:tasklet>

    </batch:step>

    <batch:listeners>

           <batch:listener ref="jobPersonListener" />

    </batch:listeners> 

</batch:job>

此外,您PersonChunkListener实现了javax.batch.api.chunk.listener.ChunkListener接口,但它应该实现org.springframework.batch.core.ChunkListener。


查看完整回答
反对 回复 2021-08-04
  • 1 回答
  • 0 关注
  • 465 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信