Wpis z mikrobloga

#python #sqlalchemy
#programowanie

Mam aplikację we flasku gdzie przerzucam dane z jednej bazy danych do drugiej. Niektóre zapytania zajmują 2 sekundy a niektóre nawet i 2 minuty (z tym akurat walczę i staram się zoptymalizować). Po 60 sekundach zawsze dostaje 504 time out z ngnixa. Niestety zauważyłem że podczas testowania endpointów (ponad 50) dostaje coraz częściej błąd:
TimeoutError: QueuePool limit of size 5 overflow 10 reached, connection timed out, timeout 30

Co mogę z tym zrobić aby taki błąd nie wyskakiwał. Jedna baza do mssql, druga to postgres a łącznikiem jest flask i sqlalchemy.
  • 4
@PiotrokeJ: możesz zwiększyć limit kolejki, dodać mechanizm czekania aż się query skończy - i wtedy odpalać kolejne, zwiększyć ilość threadow na gunicorn i timeout na nginx. I gdzie stoją bazy? Możesz też olać obiekty sqlalchemy i używać czystego SQLa o ile potrzebujesz używać