#multithreading #sqlalchemy #celery
Вопрос:
Я использую flask для написания веб — страниц и сельдерей для асинхронных задач. В Сельдерее я использовал модель ORM sqlalchemy для выполнения запросов к базе данных. Но когда объем запроса данных велик, будут сообщаться различные ошибки.
Packet sequence number wrong - got 7 expected 2 pymysql.err.OperationalError:(2014, "Command Out of Sync") MySQL server has gone away(BrokenPipeError 32, broken pipe) can't reconnect until invalid transaction is rolled back
Я предполагаю, что это может быть вызвано тем, что несколько потоков совместно используют соединение с базой данных. Однако мне трудно создать несколько подключений к базе данных в задаче сельдерея. Как я могу решить эту проблему?
в сельдерее:
from app.db import db @celery.task def taskA(): db.session.query(Models).filter() # large query