Spring batch 是一个开源的批处理框架.执行一系列的任务. 在 spring batch 中 一个job 是由许多 step 组成的。而每一个 step 又是由 READ-PROCESS-WRITE task或者 单个 task 组成。
"READ-PROCESS-WRITE" 处理,根据字面意思理解就可以:
- READ 就是从资源文件里面读取数据,比如从xml文件,csv文件,数据库中读取数据.
- PROCESS 就是处理读取的数据
- WRITE 就是将处理过的数据写入到其他资源文件中去,可以是XML,CSV,或者数据库.
比如:从CSV文件中 读取数据,经过处理之后,保存到数据库. spring batch 提供了很多类去处理这方面的东西。
单个task, 也就是处理单个任务。比如在一个step 开始之前或者完成之后清除资源文件等.
许多个step 组成在一起,就组成了一个job. 所以他们之间的关系,就如同下面的描述:
一个 job = 很多steps
一个step = 一个READ-PROCESS-WRITE 或者 一个task.
同样一个job = step1 -->step2--step3 这样链表形式的组成.
Spring batch 例子
考虑如下一个批处理的例子,看起来有点啰嗦,只是为了说明用途:
step1 : 从 A 文件夹中读取csv 文件,处理之后,写入到B文件夹中(READ-PROCESS-WRITE)
2. step2 : 从 B 文件夹中读取CSV文件 ,处理之后, 存储到数据库中(READ-PROCESS-WRITE).
3. step3 : 删除B文件夹下的CSV文件。(用到单个task)
4. step4 : 从数据库读取数据,处理之后,生成XML报表文件(READ-PROCESS-WRITE).
5. step5 : 读取XML报表,并发送EMAIL给管理员(用到单个task)
用spring batch 我们可以如下定义这个job:
<job id="abcJob" xmlns="http://www.springframework.org/schema/batch"> <step id="step1" next="step2"> <tasklet> <chunk reader="cvsItemReader" writer="cvsItemWriter" processor="itemProcesser" commit-interval="1" /> </tasklet> </step> <step id="step2" next="step3"> <tasklet> <chunk reader="cvsItemReader" writer="databaseItemWriter" processor="itemProcesser" commit-interval="1" /> </tasklet> </step> <step id="step3" next="step4"> <tasklet ref="fileDeletingTasklet" /> </step> <step id="step4" next="step5"> <tasklet> <chunk reader="databaseItemReader" writer="xmlItemWriter" processor="itemProcesser" commit-interval="1" /> </tasklet> </step> <step id="step5"> <tasklet ref="sendingEmailTasklet" /> </step> </job>
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755