모듈: Mongo::Operation::Executable Private
개요
이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
작업의 실행 가능한 동작을 공유합니다.
인스턴스 속성 요약 접기
-
#context ⇒ Operation::Context | nil
비공개
이 작업을 실행하는 데 사용되는 작업 컨텍스트입니다.
인스턴스 메서드 요약 접기
- #do_execute(connection, context, options = {}) ⇒ 객체 비공개
- #execution(connection, context:, options: {}) ⇒ 객체 비공개
인스턴스 속성 세부 정보
#context ⇒ Operation::Context | nil
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 작업을 실행하는 데 사용되는 작업 컨텍스트를 반환합니다.
33 34 35 |
# 파일 'lib/ Mongo/operation/shared/executable.rb', 줄 33 def 컨텍스트 @context end |
인스턴스 메서드 세부 정보
#do_execute(connection, context, options = {}) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
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 80 81 82 83 84 85 86 |
# 파일 'lib/ Mongo/operation/shared/executable.rb', 줄 35 def do_execute(연결, 컨텍스트, = {}) # 인스턴스 에 컨텍스트를 저장하여 # 매개변수를 모든 단일 메서드에 추가합니다. 다음과 같은 많은 레거시 메서드가 있습니다. # 여전히 매개 변수로 허용하며, 지금은 그대로 둡니다. # 이 변경의 영향 최소화합니다. 앞으로는 # 리팩터링하기에 합리적이므로 저장된 이 참조가 대신 사용됩니다. @context = 컨텍스트 Session&.Materialize_if_needed unpin_maybe(Session, 연결) do add_error_labels(연결, 컨텍스트) do check_for_network_error do add_server_diagnostics(연결) do get_result(연결, 컨텍스트, ).탭 do |결과| 만약 Session 만약 Session.in_transaction? && 연결.description.load_balancer? then 만약 Session.pinned_connection_global_id 하지 않는 한 Session.pinned_connection_global_id == 연결.global_id 올리다( 오류::Internal DriverError, "작업이 #{session.pinned_connection_global_id}연결을 사용해야 하지만 #{connection.global_id}연결을 사용했습니다. " ) end other Session.pin_to_connection(연결.global_id) 연결.핀 end end 만약 Session.스냅샷? && !Session. Session. = 결과. end end 만약 결과.has_cursor_id? && 연결.description.load_balancer? then 만약 결과.cursor_id == 0 연결.고정 해제 other 연결.핀 end end process_result(결과, 연결) end end end end end end |
#execution(connection, context:, options: {}) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
88 89 90 91 92 93 94 95 96 97 98 |
# 파일 'lib/ Mongo/operation/shared/executable.rb', 줄 88 def 실행(연결, 컨텍스트:, 옵션: {}) 만약 Lint.활성화? 하지 않는 한 연결.is_a?(mongo::서버::연결) 올리다 오류::LintError, "연결 인수의 유형이 잘못되었습니다: #{연결}" end end do_execute(연결, 컨텍스트, ).탭 do |결과| validate_result(결과, 연결, 컨텍스트) end end |