锁定行时防止竞争条件

时间:2018-11-11 01:17:07

标签: postgresql typescript locking typeorm

因此,我有一个名为“就绪”的表,该表存储了可供处理的S3对象引用。在我使用此数据并对其进行突变的应用程序中,如果不使用其相关提供程序或对该提供程序的锁定已过期,我希望能够获取最新的S3对象。

我的表结构如下:

键(PK)|提供者|时间戳记(createdAt)|锁定exp

我正在使用TypeORM创建一个TRANSACTION,获取最新的(非锁定)对象引用,并使用该提供程序也更新了所有其他列以使其也被锁定,因此我们不会意外地使用两组数据来自同一提供商。

我的代码如下:

1537553543000

我担心,如果偶然的机会,有两个消费者在同一时间与同一个提供者查询了两个单独的行,那么我将处于竞争状态。我曾考虑过当一个使用者进行此查询时锁定整个表,但是我想知道是否有更好的方法。谢谢!

0 个答案:

没有答案
相关问题