모듈: Mongo::CursorHost
- 다음에 정의됨:
- lib/mongo/cursor_host.rb
개요
커서를 ' 호스팅하다'(또는 생성)하는 엔터티에 대한 설정 및 구성을 구현하는 공통된 관심사입니다.
이 고려 사항이 포함된 클래스 또는 모듈은 다음 구현 해야 합니다.
* timeout_ms -- this must return either the operation level timeout_ms
(if set) or an inherited timeout_ms from a hierarchically higher
level (if any).
인스턴스 속성 요약 접기
-
#cursor ⇒ nil | Cursor
읽기 전용
비공개
이 뷰와 연결된 커서 (있는 경우)를 반환합니다.
-
#timeout_mode ⇒ :cursor_Lifetime | :iteration
읽기 전용
이 객체 에서 사용할 시간 초과 모드 .
인스턴스 메서드 요약 접기
-
#validate_timeout_mode!(options, forbid: []) ⇒ Object
비공개
시간 초과 모드 지정된 다른 옵션에 적합한지 확인합니다.
인스턴스 속성 세부 정보
#cursor ⇒ nil | Cursor (readonly)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 뷰와 연결된 커서 (있는 경우)를 반환합니다.
17 18 19 |
# 파일 'lib/ Mongo/cursor_host.rb', 줄 17 def cursor @cursor end |
#timeout_mode ⇒ :cursor_Lifetime | :iteration (읽기 전용)
이 객체 에서 사용할 시간 초과 모드 반환합니다.
21 22 23 |
# 파일 'lib/ Mongo/cursor_host.rb', 줄 21 def timeout_mode @timeout_mode end |
인스턴스 메서드 세부 정보
#validate_timeout_mode!(options, forbid: []) ⇒ Object
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
시간 초과 모드 지정된 다른 옵션에 적합한지 확인합니다.
Rubocop:메트릭 비활성화
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# 파일 'lib/ Mongo/cursor_host.rb', 줄 35 def validate_timeout_mode!(, forbid: []) forbid.각 do |키| 올리다 ArgumentError, 여기에 "#{key} 는 허용되지 않습니다" 만약 .키?(키) end cursor_type = [:cursor_type] timeout_mode = [:timeout_mode] 만약 timeout_ms # "테일 커서(tailable cursor)는 다음에 대한 ITERATION 값만 지원 . # timeoutMode 옵션. 이는 기본값 이며 드라이버는 반드시 옵션이 CURSOR_LIFETIME으로 설정하다 경우 # 오류가 발생합니다." 만약 cursor_type timeout_mode ||= :iteration 만약 timeout_mode == :cursor_Lifetime 올리다 ArgumentError, ' 테일 커서(tailable cursor)는 `timeout_mode: :iteration`만 지원. end # "[maxAwaitTimeMS] 옵션이 설정하다 경우 드라이버는 반드시 오류를 발생시켜야 합니다. # timeoutMS는 0이 아닌 값으로 설정하다 되고 maxAwaitTimeMS는 다음과 같습니다. # timeoutMS보다 크거나 같습니다." max_await_time_ms = [:max_await_time_ms] || 0 만약 cursor_type == :tailable_await && max_await_time_ms >= timeout_ms 올리다 ArgumentError, ' :max_await_time_ms 가 >= :timeout_ms '가 아니어야 합니다. end other # "테일 커서(tailable cursor)가 아닌 커서의 경우 기본값 은 timeoutMode입니다. #은 CURSOR_LIFETIME입니다." timeout_mode ||= :cursor_Lifetime end elsif timeout_mode # "timeoutMode가 설정하다 되어 있고 timeoutMS가 설정되어 있지 않으면 드라이버에 오류가 발생해야 합니다." 올리다 ArgumentError, ' :timeout_mode가 설정하다 경우 ':timeout_ms를 설정하다 해야 합니다. end 만약 timeout_mode == :iteration && response_to?(: 쓰기 (write)?) && 쓰기 (write)? 올리다 ArgumentError, 'timeout_mode=:iteration은 $out 또는 $merge가 있는 집계 파이프라인에 대해 지원되지 않습니다. ' end # 옵션을 업데이트하는 대신 인스턴스 변수로 설정하다 . # 커서 유형이 변경되면(예: #configure()를 통해) 새로운 # View 인스턴스 다른 기본값 timeout_mode를 선택할 수 있어야 합니다. # 처음에 timeout_mode가 설정하다 되지 않은 경우. @timeout_mode = timeout_mode end |