Sqlalchemy Pool_recycle 설정

sqlalchemy pool_recycle옵션

  • 세팅한 값(초) 후에 db 커넥션 풀을 다시 만든다. 디폴트는 -1

언제 세팅해야할까?

  • mysql 처럼 디폴트로 커넥션 타임 아웃이 있는 db를 사용할 때 설정해줘야 한다 mysql을 사용하는데 pool_recycle 세팅을 안 한하고 배치 같은 작업을 돌린다면
    1
    sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2006, 'MySQL server has gone away')
    에러를 보게 될 것이다

사용 예시

1
2
POOL_RECYCLE_TIME = 60 * 60 * 4
engine = create_engine(f"mariadb+pymysql://{user}:{passwd}@{host}:{port}/{database}?charset=utf8mb4", pool_recycle=POOL_RECYCLE_TIME)
자세히 보기