pg_try_advisory_lock() 是一个系统函数,用于尝试获取独占会话级别的 建议锁。如果无法获取锁,它会立即返回。
pg_try_advisory_lock() 函数在 PostgreSQL 8.2 中被添加。
用法
pg_try_advisory_lock (keybigint) →boolean
pg_try_advisory_lock (key1integer,key2integer) →boolean
如果成功获取锁,则返回 true,否则返回 false。
与 pg_advisory_lock() 不同,pg_try_advisory_lock() 会立即返回,而不会等待锁变得可用。
变更历史
- PostgreSQL 8.2
- 添加于(提交 9b4cda0d)
示例
pg_try_advisory_lock() 的基本用法示例
postgres=# SELECT pg_try_advisory_lock(123); pg_try_advisory_lock ---------------------- t (1 row)
当另一个会话持有期望的锁时执行 pg_try_advisory_lock()
postgres=# SELECT pg_try_advisory_lock(123); pg_try_advisory_lock ---------------------- f (1 row)
参考资料
- PostgreSQL 文档: 咨询锁函数
