SQLAlchemy의 세션을 생성 멀티 스레드

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를

 

추천

출처www.cnblogs.com/wt7018/p/11617864.html