Что такое advisory lock?

Middle+
357 просмотров
AFK Offer AI

Advisory lock — блокировка на уровне приложения, которую PostgreSQL предоставляет, но не привязывает к конкретным данным. pg_advisory_lock(42) — заблокировать по числовому ключу. Другие транзакции, вызвавшие тот же ключ, будут ждать. pg_try_advisory_lock — неблокирующая версия (сразу вернёт false, если занято). Бывают session-level (до конца сессии) и transaction-level (до конца транзакции). Используются для: предотвращения конкурентного запуска cron-задач, мьютекс на обработку конкретного юзера, координация воркеров.

Следующий вопрос

Как работает middleware chain?