我使用Spring Batch的为做了很多批处理操作的系统。点击 我在记忆的DAO使用SimpleJobRepository用。结果 我想知道是否有办法避免使用JobRepository?类似resourceless事务管理器的东西吗?点击 我之所以要问的是,该系统应无需重新启动运行经常和我有一些关于它会消耗内存的担忧。结果 我知道我可以使用一个基于数据库JobRepositry,但坦率地说,我真的不需要一个在所有。

如果没有办法这样做,我会很感激,如果有人能安慰我一下内存消耗问题。

感谢。

有帮助吗?

解决方案

您必须使用工作资源库,因为它包含有关工作方面的信息。 对于你的情况的解决方案是 - 使您的工作资源库和范围=“原型” 这将创造学习一个新的内存道(图实现)为每个作业,因此没有内存问题。 每次创建新实例的开销是无意义在批作业的条款。

其他提示

在内存中实现了一个重大缺陷:你不能在你的批次的使用多线程

所以,你必须使用一个数据库存储库。 我建议你使用SQL H2:这是一个嵌入式数据库很轻。 我们用它为我们的单元测试。

它非常好与休眠。

这种方法比本的一个好处是,你可以连接到你的内存数据库来检查的工作状态(和发布日期等)。

我觉得只要我的批处理代码是线程安全的,它不应该的问题存储库是否在内存或数据库。是的,你可能会宽松一些的集群效益,你可以得到,如果你使用的数据库,但如果我只有一个批处理作业我的服务器上运行,它使用多线程来完成工作,这应该是罚款。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top