Spring batch PCF实例为spring批处理应用程序读取的相同数据

Spring batch PCF实例为spring批处理应用程序读取的相同数据,spring-batch,Spring Batch,我正在开发一个spring批处理应用程序,它使用JdbcCursorItemReader从数据库中读取数据,当我运行一个实例时,这个应用程序可以正常工作 我在PCF中部署了这个应用程序,并使用了自动缩放功能,但多个实例正在从数据库中检索同一条记录 如何防止从其他实例读取重复数据?这通常通过应用已处理的指示符模式来处理。在此模式中,在处理每条记录时,每行上都有一个附加字段,并用状态标记该字段。然后,使用查询只筛选与您关心的状态匹配的记录。在这种情况下,状态可能是特定于节点的,因此节点仅选择节点标记

我正在开发一个spring批处理应用程序,它使用JdbcCursorItemReader从数据库中读取数据,当我运行一个实例时,这个应用程序可以正常工作

我在PCF中部署了这个应用程序,并使用了自动缩放功能,但多个实例正在从数据库中检索同一条记录


如何防止从其他实例读取重复数据?

这通常通过应用已处理的指示符模式来处理。在此模式中,在处理每条记录时,每行上都有一个附加字段,并用状态标记该字段。然后,使用查询只筛选与您关心的状态匹配的记录。在这种情况下,状态可能是特定于节点的,因此节点仅选择节点标记的记录。

这通常通过应用已处理的指示符模式来处理。在此模式中,在处理每条记录时,每行上都有一个附加字段,并用状态标记该字段。然后,使用查询只筛选与您关心的状态匹配的记录。在这种情况下,状态可能是特定于节点的,因此节点仅选择节点标记的记录。

如果运行相同的查询,将获得相同的数据。您到底想做什么?我使用status_nm列读取表中的数据,其中value为new,您能否建议我如何锁定这些记录,以便其他实例无法选择它。我尝试了select进行更新查询,但在这种情况下,当我调用update或delete时,我遇到了死锁。我知道如果select进行更新检索记录,则应使用current of子句更新或删除记录,请您帮助我如何使用java使用sql的最新版本。如果您运行相同的查询,您将获得相同的数据。您到底想做什么?我使用status_nm列读取表中的数据,其中value为new,您能否建议我如何锁定这些记录,以便其他实例无法选择它。我尝试了select进行更新查询,但在这种情况下,当我调用update或delete时,我遇到了死锁。我知道如果select进行更新检索记录,则应使用current of子句更新或删除记录,您能帮助我如何使用java使用sql的最新版本吗?谢谢。如果我使用已处理的指示符模式,意味着记录会用某些指示符进行更新,比如在进程中,假设我从数据库中读取了500条记录,提交间隔为100,那么in_进程指示符将在达到提交间隔后在数据库中提交。可能第二个实例将再次从数据库中读取该数据,因为此时更新未提交。进程指示符模式有两部分。第一个是运行的实例通过侦听器标记要处理的项目。然后,当它们被处理时,指示符会被更改,以表明它已被成功处理。如果您能为此共享一些代码示例,这将非常有帮助。因为我无法获得任何示例。如果我使用处理的指示符模式,则意味着记录会用某些指示符更新,例如在处理过程中,假设我从数据库中读取了500条记录,提交间隔为100,那么in_进程指示符将在达到提交间隔后在数据库中提交。可能第二个实例将再次从数据库中读取该数据,因为此时更新未提交。进程指示符模式有两部分。第一个是运行的实例通过侦听器标记要处理的项目。然后,当它们被处理时,指示器被更改以指示它已被成功处理。如果您可以为此共享一些代码示例,这将非常有帮助。因为我无法获得任何示例。。