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