Advisory lock là khóa do chính app định nghĩa bằng một key dạng số, không gắn với dòng hay bảng nào cả — database chỉ giữ giúp cái khóa, còn ý nghĩa là do bạn quy ước.
Hợp cho "chỉ một tiến trình được chạy tại một thời điểm" nhẹ nhàng, ví dụ đảm bảo job tính tiền của mỗi tenant chỉ chạy một bản.
sql
SELECT pg_advisory_xact_lock(hashtext('tenant:42:billing'));Dùng cẩn thận: vì database không hiểu "vật thể nghiệp vụ" sau cái khóa, nên quy ước cách sinh key phải thống nhất toàn hệ thống, và đừng giữ khóa quá lâu.