Я столкнулся со следующей проблемой параллелизма в базе данных.
Я создаю веб-приложение django, используя psycopg2 для связи с базой данных PostgreSQL. Запросы выполняются из разных процессов.
Для блокировки строк все запросы находятся внутри атомарного блока транзакции.
with transaction.atomic():
self.analysis_obj = Analysis.objects.select_for_update().get(pk=self.analysis_id)
Однако иногда я получаю случайную ошибку, такую как:
- 'нет результатов для извлечения',
- 'выскочить из пустого списка',
- 'ошибка с состоянием PGRES_TUPLES_OK и без сообщения от libpq'.
Есть идеи по поводу этой проблемы?
Большое спасибо.