如何在 Spring 批次中提交 ItemWriter 后更新源数据的状态
How to update status of source data after commit on ItemWriter in Spring Batch
我正在使用带分页的 ItemReader 从源 table 获取数据。在 ItemProcessor 上,我将使用项目的 ID 向服务发送一个休息请求,并将他们的响应传递给 ItemWriter 以存储在另一个 table.
首先阅读(第 1 页),块上的每个项目的状态都是未处理,然后在处理并将它们的响应保存到另一个 table 之后,我想更新所有项目的状态当前要处理的块。
在 ItemReader 上,我正在 select 处理所有处于未处理状态的项目。
select * 来自 table 其中状态 = 未处理
我的问题是如何更新源 table 中保存响应后已处理的每个项目的状态。因为如果我更新状态,由于更新,分页不再正确。第 2 页将跳过一些项目。
正在写入远程服务响应的 ItemWriter 也可以另外写回源 table。因此,项目作者应该做以下事情
- 写入您的网络服务的响应
- 更新状态为已处理的特定项目 ID
我正在使用带分页的 ItemReader 从源 table 获取数据。在 ItemProcessor 上,我将使用项目的 ID 向服务发送一个休息请求,并将他们的响应传递给 ItemWriter 以存储在另一个 table.
首先阅读(第 1 页),块上的每个项目的状态都是未处理,然后在处理并将它们的响应保存到另一个 table 之后,我想更新所有项目的状态当前要处理的块。
在 ItemReader 上,我正在 select 处理所有处于未处理状态的项目。 select * 来自 table 其中状态 = 未处理
我的问题是如何更新源 table 中保存响应后已处理的每个项目的状态。因为如果我更新状态,由于更新,分页不再正确。第 2 页将跳过一些项目。
正在写入远程服务响应的 ItemWriter 也可以另外写回源 table。因此,项目作者应该做以下事情
- 写入您的网络服务的响应
- 更新状态为已处理的特定项目 ID