gpt4 book ai didi

java - 在 Spring 批处理中将处理器应用于多个项目而不是一个

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

在我的一个批处理中,我需要调用 Web 服务来丰富数据库中读取的项目中的一些数据,检查一些值,然后将此丰富项目写入另一个表中。我的 Web 服务可以在同一调用中支持多个请求,以最大限度地减少对 Web 服务的调用次数。实际上我的网络服务调用被定义为处理器:

<batch:tasklet task-executor="taskExecutor">
<batch:chunk reader="bookingReader" processor="bookingEnrichWSProcessor"
writer="bookingCompositeWriter" commit-interval="10" />
</batch:tasklet>

似乎只有项目编写器可以支持在步骤定义中使用属性 commit-interval 在一次调用中写入多个项目。

我需要的是用阅读器十个十个地读取项目,并用这 10 个项目调用 ws,然后再将它们写入另一个表中。

是否可以在处理器类中做到这一点?或者我应该将这个逻辑移植到编写器中。

感谢您的帮助

最佳答案

你应该改变你的阅读器、处理器和编写器:阅读器必须输出一个对象。该对象可以是一个列表

然后处理器获取此列表作为参数,并可以使用列表中的项目调用您的 WS。

最后,作者还将获得一个对象列表。你写它们。不要忘记删除 commit-interval :当您仅处理单个对象(包含 10 个元素的列表)时,请将 commit-interval 设置为 1(如果您想写入 10 个元素)。

关于java - 在 Spring 批处理中将处理器应用于多个项目而不是一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11681930/

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