Всем привет
есть такая проблема из Rabbit летят сообщения. Принимаем сообщения и инсертим или апдейтим записи, по какому-то идентификатору из сообщения.
Допустим подряд летит 2 сообщения и при их параллельной обработке получаем ошибку, потому что пытаемся два раза заинсертить. То есть надо как-то придумать, чтобы сообщения такого рода обрабатывались строго по порядку.
я вижу 2 варианта, которые мне оба не нравятся
1) тупо ретраить в рэббит сообщение с ошибкой, придет еще раз, обработается норм
2) поднять lock в постгресе (pg_try_advisory_xact_lock) по идентификатору и тогда транзакции будут выполнятся последовательно
посоветуйте еще что-нибудь, пожалуйста