spring batch : 在不同steps间传递数据
来源:互联网 发布:阿里云业务 编辑:程序博客网 时间:2024/05/20 19:29
有两种方式:
1) 通过step_execution 或者 job_execution来在不同step中传递数据.但是如果数据量大的话,这将不是一种好的方式.因为spring batch默认会通过job repository将 setp_execution和job_execution进行持久化.
2)用自己定义的bean传递数据
创建一个data holder
@Componentpublic class PublicCompanyHolder { private List<PublicCompanyInfo> publicCompanyList; public List<PublicCompanyInfo> getPublicCompanyList() { return publicCompanyList; } public void setPublicCompanyList(List<PublicCompanyInfo> publicCompanyList) { this.publicCompanyList = publicCompanyList; }}
在step 1中设置数据:
@Component("pubTasklet")public class PubTasklet implements Tasklet { @Autowired private PublicCompanyHolder publicCompanyHolder; public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { List<PublicCompanyInfo> infoContainer = new ArrayList<PublicCompanyInfo>(); for (int i=0; i < 10; i++) { PublicCompanyInfo info = new PublicCompanyInfo(); info.setPublicCompanyId("ID-" + i); info.setPublicCompanyName("Name*" + i); infoContainer.add(info); } publicCompanyHolder.setPublicCompanyList(infoContainer); return RepeatStatus.FINISHED; }}
在step中取数据:
@Component("pubTasklet2")public class PubTasklet2 implements Tasklet { @Autowired private PublicCompanyHolder publicCompanyHolder; public RepeatStatus execute(StepContribution contribution, ChunkContext chunkContext) throws Exception { System.out.println("received holder:" + publicCompanyHolder.getPublicCompanyList()); return RepeatStatus.FINISHED; }}
define.xml
<job id="pubJob" restartable="true"> <step id="step1" next="step2"> <tasklet ref="pubTasklet" /> </step> <step id="step2" next="step1"> // if you do not want to loop, remove next <tasklet ref="pubTasklet2" /> </step> <listeners> <listener ref="pubListener" /> </listeners> </job>翻译自:http://wangxiangblog.blogspot.com/2013/02/spring-batch-pass-data-across-steps.html
0 0
- spring batch : 在不同steps间传递数据
- Spring Batch--steps
- WM_COPYDATA 在不同进程间传递数据方式之一
- PHP在不同页面间传递Json数据示例
- PHP在不同页面间传递Json数据示例代码
- 在不同Activity之间传递数据
- 在不同Activity之间传递数据
- 在不同activity之间数据传递
- 在不同的Activity之间传递数据
- 转:在ASP.NET中在不同页面间进行数据传递有哪些方法
- C#不同窗体间通信,数据传递
- C#不同窗体间数据传递
- iPhone使用委托在不同的窗口之间传递数据
- iPhone使用委托在不同的窗口之间传递数据
- 利用Intent在不同的activity之间传递数据
- 安卓用Intent在不同的Activity传递数据
- 通过intent、ClipboardManager在android不同activity之间传递数据
- 在两个不同的Form窗体中的DataGridView数据“传递”
- 搭建安卓开发环境 用sdk manager下载不了sdk包的解决方法
- 【转载】HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
- 【Hive】Hive笔记:Hive调优总结——数据倾斜,join表连接优化
- Android ViewPager使用详解
- zoj 2271 - Chance to Encounter a Girl
- spring batch : 在不同steps间传递数据
- C++细节笔记
- HDU 4415 Assassin’s Creed(贪心)
- 杭电acm2024C语言合法标识符
- LeetCode Word Search
- 'make menuconfig' requires the ncurses libraries.
- 常用编码软件简单使用记录 2 : 非自主编码器
- tomcat源码分析学习笔记(五)
- mysql 学习记录