2017-10-12 1 views
0

mysql 및 sqlalchemy에 이상한 문제가 있습니다. 모두가 시간을 잘 99 % 작동하지만 약간의 시간이 내 코드가 실행이 예외를 던져 17분을 '저지'에 제기SQLAlchemy는 17 분 후에 커밋 오류가 발생합니다.

예외 : (_mysql_exceptions.OperationalError를) (2013 년, 'MySQL의 연결을 분실

self.engine = create_engine(uri, echo=False, poolclass=NullPool) 
session_maker = orm.sessionmaker(
    bind=self.engine, 
    expire_on_commit=False, 
    autoflush=False, 
    extension=None 
) 
self.session = self.orm.scoping.scoped_session(session_maker) 
self.session.add(entity) # it's a simple object I want to insert 
self.session.commit() 

내가 MySQL의에서 활성화 :

쿼리 ') 여기

동안 서버는 코드입니다 내 오류에 대한 이러한 로그에

아무것도 이노에서은

  • 슬로우 쿼리 로그
  • 인쇄 교착 상태. mysql의 유휴 연결은 30 분 mysql 프론트로드 밸런서의 유휴 연결은 4 분

    그래서 나는 내 버그에 대해 더 이상 알지 못합니다.

    새로운 아이디어가 있습니까? connect_args

    self.engine = create_engine(uri, echo=False, poolclass=NullPool ,connect_args={'connect_timeout': 10}) 
    

    Check here for more info

+0

NullPool을 사용하고 있기 때문에 MySQL 연결이 끊어지는 문제가있는 것 같지 않습니다. 우리는 예외적 인 스택을 우리와 공유하고 싶습니까? – herokingsley

답변

0

사용 시간 제한!

+0

실제로이 점을 보았지만 mysql 연결이 끊어진 링크가 표시되지 않습니다. 설명해 주시겠습니까? – Kiva

+0

현재 다른 명백한 이유가 없기 때문에 시간 초과 문제 일 수 있다고 생각했습니다. connect_timeout을 20 분 이상으로 설정하고 테스트 할 수 있습니다. –

+0

기본 connect_timeout은 10 초인 것 같습니다. https://github.com/PyMySQL/PyMySQL/blob/dc01c6e7cd06cf523d67140b26afea365c130192/pymysql/connections.py#L584 그래서 나는 생각하지 않습니다. 좋은 길이야. – Kiva

관련 문제