首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring-batch在执行之间共享数据

Spring-batch在执行之间共享数据
EN

Stack Overflow用户
提问于 2014-01-15 22:29:58
回答 2查看 1.3K关注 0票数 1

我是Spring-batch的新手。我有一个简单的,概念验证的工作,做一些虚拟的事情。

ItemReader:获取dateA和最大日期之间的记录数量(当前的最后一条记录) ItemProcessor:聚合每个城市的行ItemWriter:将结果写入数据库

我的问题是,当作业完成时,我希望保留最后一个日期,以便下一次作业执行从该日期开始,即dateA。我知道我可以使用JobExecutionContext来共享数据,但是如果在第二次运行时,我试图获取dateA,但是值为空

有没有办法从上一次作业执行中获得记录的上一次dateA值?又是如何做到的?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2014-01-15 22:39:10

有多种方法可以实现这一点。最简单的方法是将其写入一个文件中,并在下一次启动时读取该文件。但不知何故这是肮脏的。你也可以把它写在数据库中,或者只是运行一个sql,从数据库中已有的数据中返回最大日期。基本上,我会实现一个简单的微线程(类似于Tasklet to delete a table in spring batch ),它运行sql并在chunkContext上添加最大数据。

票数 0
EN

Stack Overflow用户

发布于 2014-01-16 01:03:32

以下可能是另一种选择。

使用JobExecutionListener#afterJob将日期存储在bean容器中。下面的链接回答在步骤级别传递集合的问题。

What's the best way to pass a huge collection to a Spring Batch Step?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21140079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档