что по запросу отдавала запись из базы и удалялась, проблема в том что если запросы идут быстро, то база не успевает удалить запись и получается что во втором запросе, те же данные что и в первом, что можно с этим сделать? на рандом строки не вариант отдавать важен порядок
Можешь погуглить в сторону skip locked
надо брать лок на строку
а что если использовать ThreadPoolExecutor ?
Очередь сделать?
ну да что то типо того
это не сработает если инстансов приложения более 1го
Singleton и проблема решена
Организовать настоящий синглтон в распределённой системе — тоже задача непростая. В некоторых вариантах архитектуры.
Да нет, я про то когда у тебя 2 машины с конкурентными запросами в бд. Синхронизация данных в БД на уровне приложения сразу пойдет по пизде. Поэтому там её никто не делает если хотят скалировать. Синхронизацию данных в БД надо делать в БД
Разве это все ещё не решено на уровне СУБД?
Смотря какая СУБД, и какая архитектура в системе вообще.
Аа, ну если в таком ключе то да, но
Обсуждают сегодня