类:Mongo::Session::ServerSession Private

继承:
对象
  • 对象
显示全部
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb

Overview

此类是私有 API 的一部分。 应尽可能避免使用此类,因为它将来可能会被删除或更改。

表示服务器端会话的对象。

由于:

  • 2.5.0

常量摘要折叠

DASH_REGEX =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

用于从 UUID string中删除破折号的正则表达式。

由于:

  • 2.5.0

/\-/.冻结
UUID_PACK =

此常量是私有 API 的一部分。 应尽可能避免使用此常量,因为它将来可能会被删除或更改。

UUID 的 Pack 指令。

由于:

  • 2.5.0

'H*'.冻结

实例属性摘要折叠

实例方法摘要折叠

构造函数详情

#初始化ServerSession

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

初始化 ServerSession。

例子:

ServerSession.new

由于:

  • 2.5.0



69
70
71
72
73
# File 'build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb', 第69行

def 初始化
  set_last_use!
  session_id
  @txn_num = 0
end

实例属性详细信息

# last_use对象(只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

上次使用服务器会话的时间。

由于:

  • 2.5.0



42
43
44
# File 'build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb', 第42行

def last_use
  @last_use
end

# txn_num对象(只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

当前事务编号。

当ACID 事务处于活动状态时,该ACID 事务中的所有操作都使用相同的ACID 事务编号。 如果整个ACID 事务重新启动(示例,通过 Session#with_transaction,在这种情况下,它也会再次调用提供给它的区块),则每次ACID 事务尝试都有自己的ACID 事务编号。

事务编号还用于事务之外的可重试写入。 在这种情况下,每个写入操作都有自己的事务编号,但写入操作的重试使用与第一次写入相同的事务编号(这就是服务器知道后续写入是重试的原因,并且如果第一次写入成功,则应忽略后续写入) ,但客户端未读取)。

由于:

  • 2.5.0



61
62
63
# File 'build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb', 第61行

def txn_num
  @txn_num
end

实例方法详细信息

#检查string

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

获取用于检查的格式化string 。

例子:

检查会话对象。

session.inspect

返回:

  • ( string )

    会话检查。

由于:

  • 2.5.0



117
118
119
# File 'build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb', 第117行

def 检查
  " #<Mongo::Session::ServerSession: 0 x #{ object_id } session_id= #{ session_id } last_use= #{ @last_use } > "
end

# next_txn_num整数

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

递增当前事务编号并返回新值。

返回:

  • ( Integer )

    更新后的ACID 事务编号。

由于:

  • 2.5.0



105
106
107
# File 'build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb', 第105行

def next_txn_num
  @txn_num += 1
end

#session_idBSON::Document

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

此服务器会话的会话 ID。

例子:

获取会话 ID。

server_session.session_id

返回:

  • ( BSON::Document )

    会话 ID。

由于:

  • 2.5.0



95
96
97
98
# File 'build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb', 第95行

def session_id
  @session_id ||= (字节 = [SecureRandom.uuid.gsub(DASH_REGEX, ' ')].打包(UUID_PACK)
                    BSON::文档.new(ID : BSON::二进制文件.new(字节, :uuid)))
end

# set_last_use!时间

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。

将服务器会话的 last_use 属性更新为 now。

例子:

将上次使用字段设置为现在。

server_session.set_last_use!

返回:

  • 时间

    上次使用会话的时间。

由于:

  • 2.5.0



83
84
85
# File 'build/Ruby-driver-v 2.19 /lib/mongo/session/server_session.rb', 第83行

def set_last_use!
  @last_use = 时间.now
end