首页 文章

我们可以编写没有ItemReader和ItemWriter的Spring批处理作业

提问于
浏览
4

在我的项目中,我用Spring Batch 2.2编写了一个Quartz调度程序 .

根据我的要求,我想运行一个调度程序来获取应用程序配置属性,以刷新所有GlassFish集群上的配置缓存 .

所以我不需要用于文件读/写操作的ItemWriter和ItemReader . 那么我可以删除 ItemReaderItemWriter 吗?

我的工作配置如下:

<batch:job id="reportJob">
                 <batch:step id="step1">
                     <batch:tasklet>    
    <!--I want to remove ItemReader and ItemWriter as its not used -->          
                         <batch:chunk reader="ItemReader" writer="ItemWriter" 
                            commit-interval="10"> 
                        </batch:chunk> 
                    </batch:tasklet> 
                </batch:step> 

                <batch:listeners>
                    <batch:listener ref="simpleListener"/>
                </batch:listeners>
            </batch:job>

<bean id="jobDetail" class="org.springframework.scheduling.quartz.JobDetailBean">
            <!-- Cache Refresh code is written here : JobLauncherDetails.java file -->
        <property name="jobClass" value="com.mkyong.quartz.JobLauncherDetails" />
        <property name="group" value="quartz-batch" />
        <property name="jobDataAsMap">
            <map>
                <entry key="jobName" value="reportJob" />
                <entry key="jobLocator" value-ref="jobRegistry" />
                <entry key="jobLauncher" value-ref="jobLauncher" />
                <entry key="param1" value="mkyong1" />
                <entry key="param2" value="mkyong2" />
            </map>
        </property>
    </bean>

我编写业务逻辑来刷新JobClass JobLauncherDetails.java上的缓存 . 那么可以删除ItemReader和ItemWriter吗?我们有任何可能的替代方式吗?

1 回答

  • 14

    使用Tasklet

    <job id="reportJob">
      <step id="step1">
        <tasklet ref="MyTaskletBean" />
      </step>
      <!-- Other config... -->
    </job> 
    
    
    
    class MyTasklet implements Tasklet {
      @Override
      public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception {
      }
    }
    

    您可以在official doc的第5.2章中阅读有关Tasklet的更多信息 .

相关问题