Семафор в postgresql
Положим если мы хотим отделить действия двух воркеров в SQL (работает либо один воркер либо другой), то мы можем использовать «mutex» - использовать транзакции и SELECT FOR UPDATE для взаимных блокировок на какой нибудь сторонней строке (положим воркеры с этой строкой не работают а используют ее только для синхронизации, для реализации «mutex»).
А что если мы хотим отделить действия двух групп воркеров в SQL (работает либо одна группа воркеров либо другая)? как бы вы изобрели «semaphore» для этого (любыми средствами SQL)?
Пока думаю в сторону SELECT FOR SHARE и SELECT FOR UPDATE на специальных строках для синхронизации групп воркеров, но до конца что-то пока не сложил 2 + 2. А как бы это сделали вы (именно средствами SQL)?