我有一个从分布式客户端获取的资源。此资源受事务级锁保护:
选择 pg_advisory_xact_lock(123456)
我知道pg_try_advisory_xact_lock
如果我不想等待它免费,我可以使用它。如果我得到它-调用将返回true
,否则false
。
我想要实现的是pg_advisory_xact_lock
队列大小的行为。如果少于 4 个事务正在等待锁,则加入等待,否则返回 false pg_try_advisory_xact_lock
。如果你设法获得了锁 - 返回 true。
我可以在不编写 plv8 扩展的情况下实现这一点吗?有任何想法吗?
我正在使用 PostgreSQL 10。