threding.local에 따라 1, 추천
에서 sqlalchemy.orm의 가져 오기 sessionmaker 에서 SQLAlchemy의 가져 오기 create_engine 에서 sqlalchemy.orm의 가져 오기 scoped_session 에서 모델 가져 오기 학생 에서 스레딩 가져 오기 스레드 엔진 = create_engine ( " // 루트 : 암호 @ 127.0.0.1 :? 3306 / 데이터베이스 문자 집합 = UTF8 MySQL의 + pymysql " , max_overflow = 0, # 연결 풀 생성의 외부 크기까지 연결보다 pool_size =. 5, #의 연결 풀 사이즈 pool_timeout = 30, #대기 시간까지 어떤 스레드 풀 없다, 그렇지 않으면 오류 pool_recycle = -1 # 재활용 (재설정)를 한 번에 연결을위한 스레드 풀 후 긴 스레드 ) 의 SessionFactory = sessionmaker (바인드 = 엔진) 세션 = scoped_session (SessionFactory를) DEF 작업 () : RET = session.query (학생) .ALL () #이 연결 풀에 다시 연결 session.remove () 에 대한 I 의 범위 (20 ) : T는 스레드 (대상 = = 작업) t.start을 ()
멀티 스레드에 기초하여 2,
에서 sqlalchemy.orm의 가져 오기 sessionmaker 에서 SQLAlchemy의 가져 오기 create_engine 에서 모델 가져 오기 학생 에서 스레딩 가져 오기 스레드 엔진 = create_engine ( " MySQL은 + pymysql : // 루트 : 암호 @ 127.0.0.1 :? 3306 / 데이터베이스 = UTF8 캐릭터 세트 " , max_overflow = 0, # 외부 접속 풀을 접속 이상 생성하도록 크기 pool_size = 5, #의 연결 풀 사이즈 pool_timeout = 30, #에 별도로 에러 풀 기껏 시간을 기다리는 쓰레드 = pool_recycle -1 중 #풀 긴 스레드가 연결되면 복구 (재설정)을 한 후 ) 의 SessionFactory = sessionmaker (바인드 = 엔진) DEF 작업은 () : #은 연결 풀 연결 얻을 세션 = SessionFactory를 () RET = (session.query를 학생) .ALL () #은 다시 연결 풀에 대한 연결 은 Session.close () 에 대한 I 의 범위 (20 인 :) T는 스레드 (대상 = = 작업) ) (t.start를