@dake1231

Как правильно взаимодействовать с БД при многопоточности?

Здравствуйте! У меня есть воркер на питоне,который берет из БД данные и далее запускает поток с загрузчиком. Изначально в БД статус "в очереди", после того как воркер подхавтил статус становится "в работе", далее отдельным потоком идет загрузка, после окончания загрузки статус должен быть "готово", вот тут проблема, возникает ошибка
_mysql_exceptions.ProgrammingError: (2014, "Commands out of sync; you can't run this command now")

или вот как то так
2013, "Lost connection"
Там есть класс который работает с БД, в класс который работает в потоке передаю экземпляр этого класса
  • Вопрос задан
  • 214 просмотров
Пригласить эксперта
Ответы на вопрос 1
LaRN
@LaRN
Senior Developer
Про суть ошибки написано тут https://habrahabr.ru/post/21326/ или тут www.mysql.ru/docs/man/Commands_out_of_sync.html

Не ясно как реализован ваш класс доступа к БД. Но если все воркеры идут через один общий коннект, то тогда по ссылкам указано что происходит. По хорошему каждый воркер должен открывать свой коннект к БД.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы