클래스: Mongo::Session::SessionPool Private
- 상속:
-
객체
- 객체
- Mongo::Session::SessionPool
- 다음에 정의됨:
- lib/ Mongo/session/session_pool.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 세션의 풀입니다.
인스턴스 메서드 요약 접기
-
#checkin(session) ⇒ 객체
비공개
서버 세션을 풀에 체크인합니다.
-
#checkout ⇒ ServerSession
비공개
풀에서 서버 세션을 확인합니다.
-
#end_sessions ⇒ 객체
비공개
서버 에 endSessions 명령을 전송하여 풀의 모든 세션을 종료합니다.
-
#initialize(cluster) ⇒ SessionPool
생성자
비공개
SessionPool을 초기화합니다.
-
#검사 ⇒ string
비공개
검사에 사용할 형식이 지정된 string 을 가져옵니다.
생성자 세부 정보
#initialize(cluster) ⇒ SessionPool
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
SessionPool을 초기화합니다.
37 38 39 40 41 |
# 파일 'lib/ Mongo/session/session_pool.rb', 줄 37 def 초기화(cluster) @queue = [] @mutex = 뮤텍스.신규 @cluster = cluster end |
인스턴스 메서드 세부 정보
#checkin(session) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 세션을 풀에 체크인합니다.
86 87 88 89 90 91 92 93 94 95 |
# 파일 'lib/ Mongo/session/session_pool.rb', 줄 86 def checkin(Session) 만약 Session.nil? 올리다 ArgumentError, '세션은 nil일 수 없습니다.' end @mutex.동기화 do 정리하다! @queue.unshift(Session) 만약 return_to_queue?(Session) end end |
#checkout ⇒ ServerSession
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
풀에서 서버 세션을 확인합니다.
63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# 파일 'lib/ Mongo/session/session_pool.rb', 줄 63 def 결제 @mutex.동기화 do 루프 do 만약 @queue.비어 있나요? 반환 ServerSession.신규 other Session = @queue.shift 하지 않는 한 about_to_expire?(Session) 반환 Session end end end end end |
#end_sessions ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 에 endSessions 명령을 전송하여 풀의 모든 세션을 종료합니다.
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
# 파일 'lib/ Mongo/session/session_pool.rb', 줄 103 def end_sessions 동안 !@queue.비어 있나요? 서버 = ServerSelector.get(모드: :primary_preferred).select_server(@cluster) op = 작업::명령.신규( 선택기: { endSessions: @queue.shift(10_000).map(&:session_id), }, db_name: Database::ADMIN, ) 컨텍스트 = 작업::Context.신규(옵션: { server_api: 서버.[:server_api], }) op.실행(서버, 컨텍스트: 컨텍스트) end 구출 mongo::오류, 오류::AuthError end |
#검사 ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
검사에 사용할 형식이 지정된 string 을 가져옵니다.
51 52 53 |
# 파일 'lib/ Mongo/session/session_pool.rb', 줄 51 def 검사 "#<Mongo::Session::SessionPool:0x#{object_id} current_size=#{@queue.size}>" end |