클래스: Mongo::Operation::Context Private
- 상속:
-
CsotTimeoutHolder
- 객체
- CsotTimeoutHolder
- Mongo::Operation::Context
- 다음에 정의됨:
- lib/ Mongo/operation/context.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
작업에 대한 컨텍스트입니다.
작업 실행에 대한 결정을 내리는 데 필요한 다양한 객체를 단일 컨테이너 에 담고, 포함된 객체에 대한 파사드 메서드를 제공합니다.
컨텍스트에는 작업에 대한 매개변수가 포함되어 있으므로 작업이 준비되는 동안에는 컨텍스트에서 아무 것도 변경되지 않아야 합니다. 작업 결과가 처리되는 동안 컨텍스트에서 반환된 데이터가 변경될 수 있지만(예: 트랜잭션이 중단된 경우), 이 시점이 되면 작업은 더 이상 컨텍스트에서 아무 것도 읽지 않아야 합니다. 컨텍스트 데이터는 작업 실행 중에 변경될 수 있으므로 컨텍스트 객체를 여러 작업에 재사용해서는 안 됩니다.
인스턴스 속성 요약 접기
- #클라이언트 ⇒ 객체 읽기 전용 비공개
- #options ⇒ 객체 읽기 전용 비공개
- #세션 ⇒ 객체 읽기 전용 비공개
- #view ⇒ Object 읽기 전용 비공개
CsotTimeoutHolder에서상속된 속성
#deadline, #operation_timeout, #timeout_sec
인스턴스 메서드 요약 접기
- #aborting_transaction? ⇒ 부울 비공개
- #any_retry_writes? ⇒ 부울 비공개
- #committing_transaction? ⇒ 부울 비공개
- #connection_global_id ⇒ 객체 비공개
- # 암호해독(cmd) ⇒ 객체 비공개
- # 암호를해독하시겠습니까? ⇒ 부울 비공개
- #암호화(db_name, cmd) ⇒ 객체 비공개
- #암호화? ⇒ 부울 비공개
- #encrypter ⇒ 객체 비공개
- #in_transaction? ⇒ Boolean 비공개
-
#initialize(클라이언트: nil, session: nil, connection_global_id: nil, operation_timeout: {}, view: nil, options: nil) ⇒ 컨텍스트
생성자
비공개
Context의 새 인스턴스 입니다.
- #검사 ⇒ 객체 비공개
- #legacy_retry_writes? ⇒ 부울 비공개
- #Modern_retry_writes? ⇒ 부울 비공개
-
#refresh(connection_global_id: @connection_global_id, timeout_ms: nil, view: nil) ⇒ Operation::Context
비공개
기한을 새로 고치고 현재 순간을 기준으로 한 새 Operation::Context를 반환합니다.
-
#다시 시도하시겠습니까? ⇒ 부울
비공개
작업이 재시도인지(true) 또는 초기 시도인지(false)인지 여부입니다.
- #server_api ⇒ 객체 비공개
- #startup_transaction? ⇒ 부울 비공개
-
#with(**opts) ⇒ 객체
비공개
제공된 인수에 따라 매개변수가 변경된 새 컨텍스트를 반환합니다.
CsotTimeoutHolder에서상속된 메서드
#check_timeout!, #csot?, #remaining_timeout_ms, #remaining_timeout_ms!, #remaining_timeout_sec, #remaining_timeout_sec!, #timeout?, #timeout_expired?
생성자 세부 정보
#initialize(클라이언트: nil, session: nil, connection_global_id: nil, operation_timeout: {}, view: nil, options: nil) ⇒ 컨텍스트
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
Context의 새 인스턴스 를 반환합니다.
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 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 38 def 초기화( 클라이언트: nil, 세션: nil, connection_global_id: nil, operation_timeout: {}, 보기: nil, 옵션: nil ) 만약 만약 고객 올리다 ArgumentError, '클라이언트와 옵션을 모두 지정할 수 없습니다.' end 만약 Session 올리다 ArgumentError, '세션과 옵션을 모두 지정할 수 없습니다.' end end 만약 connection_global_id && Session&.pinned_connection_global_id 올리다 ArgumentError, 세션 이이미 연결에 고정된 상태에서 컨텍스트를 연결에 고정하려고 합니다.' end @client = 고객 @session = Session @view = 보기 @connection_global_id = connection_global_id @options = super(세션: Session, operation_timeout: operation_timeout) end |
인스턴스 속성 세부 정보
#클라이언트 ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
68 69 70 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 68 def 고객 @client end |
#options ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
71 72 73 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 71 def @options end |
#세션 ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
69 70 71 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 69 def Session @session end |
#보기 ⇒ 객체 (읽기 전용)
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
70 71 72 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 70 def 보기 @view end |
인스턴스 메서드 세부 정보
#aborting_transaction? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
105 106 107 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 105 def aborting_transaction? in_transaction? && Session.aborting_transaction? end |
#any_retry_writes? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
117 118 119 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 117 def any_retry_writes? Modern_retry_writes? || legacy_retry_writes? end |
#committing_transaction? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
101 102 103 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 101 def committing_transaction? in_transaction? && Session.committing_transaction? end |
#connection_global_id ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
89 90 91 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 89 def connection_global_id @connection_global_id || Session&.pinned_connection_global_id end |
# 암호해독(cmd) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
159 160 161 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 159 def 암호 해독(cmd) 암호화기.암호 해독(cmd, self) end |
# 암호를해독하시겠습니까? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
155 156 157 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 155 def 해독? !!고객&.암호화기 end |
#암호화(db_name, cmd) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
151 152 153 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 151 def 암호화(db_name, cmd) 암호화기.암호화(db_name, cmd, self) end |
#암호화? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
147 148 149 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 147 def 암호화? 고객&.암호화기&.암호화? || 거짓 end |
#encrypter ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
163 164 165 166 167 168 169 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 163 def 암호화기 만약 고객&.암호화기 고객.암호화기 other 올리다 오류::Internal DriverError, '암호화는 암호화 를 수행할 때만 액세스해야 합니다.' end end |
#in_transaction? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
93 94 95 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 93 def in_transaction? Session&.in_transaction? || 거짓 end |
#검사 ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
171 172 173 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 171 def 검사 "#<#{자기.클래스} connection_global_id=#{connection_global_id.검사} 마감 시간=#{마감일.검사} options=#{.검사} operation_timeout=#{operation_timeouts.검사} }>" end |
#legacy_retry_writes? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
113 114 115 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 113 def legacy_retry_writes? 고객 && !고객.[:retry_writes] && 고객.max_write_retries > 0 end |
#Modern_retry_writes? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
109 110 111 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 109 def Modern_retry_writes? 고객 && 고객.[:retry_writes] end |
#refresh(connection_global_id: @connection_global_id, timeout_ms: nil, view: nil) ⇒ Operation::Context
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
기한을 새로 고치고 현재 순간을 기준으로 한 새 Operation::Context를 반환합니다.
77 78 79 80 81 82 83 84 85 86 87 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 77 def 새로 고침(connection_global_id: @connection_global_id, timeout_ms: nil, 보기: nil) operation_timeout = @operation_timeout operation_timeout = operation_timeout.merge(operation_timeout_ms: timeout_ms) 만약 timeout_ms self.클래스.신규(클라이언트: 고객, 세션: Session, connection_global_id: connection_global_id, operation_timeout: operation_timeout, 보기: 보기 || self.보기, 옵션: ) end |
#다시 시도하시겠습니까? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
작업이 재시도인지(true) 또는 초기 시도인지(false)인지 여부입니다.
130 131 132 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 130 def 재시도? !!@is_retry end |
#server_api ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
121 122 123 124 125 126 127 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 121 def server_api 만약 고객 고객.[:server_api] elsif [:server_api] end end |
#startup_transaction? ⇒ 부울
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
97 98 99 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 97 def startup_transaction? Session&.startup_transaction? || 거짓 end |
#with(**opts) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
제공된 인수에 따라 매개변수가 변경된 새 컨텍스트를 반환합니다.
139 140 141 142 143 144 145 |
# 파일 'lib/ Mongo/operation/context.rb', 줄 139 def 와(**opts) dup.탭 do |copy| opts.각 do |k, v| copy.instance_variable_set("@#{k}", v) end end end |