클래스: Mongo::Session::SessionPool Private
- 상속:
-
객체
- 객체
- Mongo::Session::SessionPool
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/session/session_pool.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 세션의 풀입니다.
클래스 메서드 요약 접기
-
.create(클러스터) ⇒ 객체
비공개
SessionPool을 생성합니다.
인스턴스 메서드 요약 접기
-
#checkin(session) ⇒ 객체
비공개
서버 세션을 풀에 체크인합니다.
-
#checkout ⇒ ServerSession
비공개
풀에서 서버 세션을 확인합니다.
-
#end_sessions ⇒ 객체
비공개
서버 에 endSessions 명령을 전송하여 풀의 모든 세션을 종료합니다.
-
#initialize(cluster) ⇒ SessionPool
생성자
비공개
SessionPool을 초기화합니다.
-
#검사 ⇒ string
비공개
검사에 사용할 형식이 지정된 string 을 가져옵니다.
생성자 세부 정보
#initialize(cluster) ⇒ SessionPool
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
SessionPool을 초기화합니다.
52 53 54 55 56 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/session/session_pool.rb', 줄 52 def 초기화(cluster) @queue = [] @mutex = 뮤텍스.신규 @cluster = cluster end |
클래스 메서드 세부 정보
.create(cluster) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
SessionPool을 생성합니다.
38 39 40 41 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/session/session_pool.rb', 줄 38 def self.create(cluster) 풀 = 신규(cluster) cluster.instance_variable_set(:@session_pool, 풀) end |
인스턴스 메서드 세부 정보
#checkin(session) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 세션을 풀에 체크인합니다.
101 102 103 104 105 106 107 108 109 110 111 112 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/session/session_pool.rb', 줄 101 def checkin(Session) 만약 Session.nil? 올리다 ArgumentError, '세션은 nil일 수 없습니다.' end @mutex.동기화 do 정리하다! 하지 않는 한 about_to_expire?(Session) @queue.unshift(Session) end end end |
#checkout ⇒ ServerSession
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
풀에서 서버 세션을 확인합니다.
78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/session/session_pool.rb', 줄 78 def 결제 @mutex.동기화 do 루프 do 만약 @queue.비어 있나요? 반환 ServerSession.신규 other Session = @queue.shift 하지 않는 한 about_to_expire?(Session) 반환 Session end end end end end |
#end_sessions ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
서버 에 endSessions 명령을 전송하여 풀의 모든 세션을 종료합니다.
120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/session/session_pool.rb', 줄 120 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 을 가져옵니다.
66 67 68 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/session/session_pool.rb', 줄 66 def 검사 "#<Mongo::Session::SessionPool:0x#{object_id} current_size=#{@queue.size}>" end |