【发布时间】:2016-01-31 13:25:57
【问题描述】:
在我的数据库中,我的 java spring 应用程序需要不时处理某个表的许多记录。 该表的每一行都有一个布尔标志,表示当前是否正在处理给定的记录。
我正在查看的是在不同的服务器上多次部署我的 java spring 应用程序,所有这些都访问同一个共享数据库,同一个应用程序与一些负载平衡器重复,等等。
但一次只有一个 Java 应用程序实例可以处理该特定表的给定数据库记录。
执行该约束的不同方法是什么?
我可以想到一些独特的队列,它将这些处理任务分派给不同的 java 运行实例,确保两个不同的 java 实例不会同时处理相同的 DB 记录。但这听起来很复杂。也许有更简单的东西?还要别的吗?提前致谢。
【问题讨论】:
-
数据库管理系统(DBMS)有责任关心一个记录被一个连接访问。
-
我的意思是,有一段时间,只有一个 java 实例应该拥有对该资源的独占访问权限(对其进行多次更新并排除所有其他 java 实例以在这 5 分钟内访问它)。
标签: java database spring concurrency queue