У меня есть проект, над которым я работаю, который использует фоновый поток для вставки данных в базу данных из другого источника. Теперь одна из проблем, с которыми я иногда сталкиваюсь, - когда пользователь взаимодействует с базой данных, возникает ошибка из-за того, что «не удалось сериализовать доступ из-за одновременного обновления».
Поскольку мой источник данных генерирует много данных, мои Фоновый поток всегда занят хранением и вставкой данных, и я написал алгоритм для «повторной попытки», когда строка заблокирована, поэтому я могу справиться со случайной ошибкой, которая возникает в фоновом потоке.
Реальная проблема заключается в том, что мои пользователи в основном взаимодействуют с базой данных через веб-сайт, на котором сопоставление ORM выполняется на разных уровнях, и кажется, что иногда пользователь может изменять ту же запись, над которой работает фоновый поток.
Есть ли какие-либо рекомендации о том, что я мог бы сделать, чтобы я не столкнулся с ошибками сериализации?