模块:Mongo::Operation::Executable Private
- 包括:
- ResponseHandling
- 包含在:
- OpMsgBase
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/operation/shared/executable.rb
Overview
该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。
操作的共享可执行行为。
实例方法摘要折叠
- # do_execute (connection, context, options = {}) ⇒ 对象 private
- #execute (connection, context:, options: {}) ⇒ 对象 private
实例方法详细信息
# do_execute (connection, context, options = {}) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
29 30 31 32 33 34 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 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/operation/shared/executable.rb', 第29行 def do_execute(连接, 上下文, = {}) 会话&。Materialize_if_needed unpin_maybe(会话, 连接) do add_error_labels(连接, 上下文) do add_server_diagnostics(连接) do get_result(连接, 上下文, ).点击 do |结果| if 会话 if 会话.in_transaction? && 连接.描述.load_balancer? then if 会话.pinned_connection_global_id 除非 会话.pinned_connection_global_id == 连接.global_id 提高( 错误::内部驱动程序错误, " 预期操作会使用连接 #{ session .pinned_connection_global_id } ,但实际使用了 # { connection . global_id } " ) end else 会话.pin_to_connection(连接.global_id) 连接.销 end end if 会话.快照? && !会话. 会话. = 结果. end end if 结果.has_cursor_id? && 连接.描述.load_balancer? then if 结果.cursor_id == 0 连接.取消固定 else 连接.销 end end process_result(结果, 连接) end end end end end |
#execute (connection, context:, options: {}) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
73 74 75 76 77 78 79 80 81 82 83 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/operation/shared/executable.rb', 第73行 def 执行(连接, 上下文:, 选项: {}) if Lint.已启用? 除非 连接.is_a?(mongo::服务器::连接) 提高 错误::LintError, "连接参数的类型错误: #{ connection } " end end do_execute(连接, 上下文, ).点击 do |结果| validate_result(结果, 连接, 上下文) end end |