@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

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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект