gpt4 book ai didi

java - 使用 StepExecutionContext/JobExecutionContext 共享大值 Hashmap 的后果

转载 作者:太空宇宙 更新时间:2023-11-04 10:03:08 25 4
gpt4 key购买 nike

我有一个要求,即使用 SQL 语句在步骤的一个读取器中检索值,并在下一个读取器中执行相同的请求。

如果第一个读取器中已获取数据并将该集合(可能是 HashMap)传递到下一步,我不想发出另一个请求。为此,我浏览了以下链接: How can we share data between the different steps of a Job in Spring Batch?

在许多评论中都提到“数据必须简短”

在一个回复中还提到:这些上下文适合共享字符串或简单值,但不适合共享集合或大量数据。

通过传递该 HashMap,我相信它会自动推断将传递 HashMap 的引用。

最好提前知道通过它可能产生的后果以及任何更好的替代方法。

最佳答案

步骤之间传递数据确实是通过执行上下文完成的。但是,您应该小心放入执行上下文中的数据的大小,因为它会在步骤之间保留。

I do not want to make another request if the data is already fetched in the First reader and pass that collection (possibly a HashMap) to next step

您只能从数据库中读取一次数据并将其放入缓存中。然后第二个读取器可以从缓存中获取数据。这比第二次从数据库读取数据要快。

希望这有帮助。

关于java - 使用 StepExecutionContext/JobExecutionContext 共享大值 Hashmap 的后果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53251535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com