FOR UPDATE SKIP LOCKED.
Я в частности про SELECT ... FOR UPDATE
А нужен ли SKIP? Если важен порядок, по идее можно без него — просто будут две реплики по очереди отрабатывать и если какая-то упадет, то другая продолжит в одиночку
Можно SELECT FOR UPDATE, Можно advisory на каждую строку, можно advisory на произвольное число в транзакции(лок бизнес-процесса). можно отдельный лок в редисе или етцд
Можно и без skip locked, тогда почти всегда один консьюмер работать будет. В любом случае не вижу смысла обсуждать уже, человеку оутбокс не нужен.
почему вы думаете, что ему не нужен аутбокс?
Прочтите задачу.
прочел. почему не нужен аутбокс?
Ему нужно запросы в другой сервис делать. Их два. Желательно с ретраями и делэями. Какой тут аутбокс?
Там ингресс на входе скорее всего
запросы в другой на основании запросов в первый тк другой может быть не доступен, то аутбокс-решение
какая разница, таблица с запросом или очередь?
Нет. Сервис1 – это его сервис. Он же продюсер и консьюмер. Получил запрос, положил в очередь, сходил в две очереди и отправил запросы.
Действительно. Совершенно никакой.
вы короче занялись XY. вас спросили об одном, а вы отвечаете на другой вопрос
Нет. Я спросил, какая задача стоит. Подсказал правильное решение, а не пытаюсь одно подтянуть под другое.
Мне кажется это наиболее правильное решение
у меня нет претензии к предложенному решению я ответил на "ему не нужен аутбокс"
Так вы задачу не поняли. Прочтите еще раз. Нет там ничего про "на основе ответа первого".
Обсуждают сегодня