类:Mongo::Session::ServerSession Private

继承:
对象
  • 对象
显示全部
包括:
Dirtyable
定义于:
lib/ Mongo/session/server_session.rb
lib/ Mongo/session/server_session/dirtyable.rb

Overview

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

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

由于:

  • 2.5.0

在命名空间下定义

模块: Dirtyable

常量摘要折叠

DASH_REGEX =

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

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

由于:

  • 2.5.0

/\-/.冻结
UUID_PACK =

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

UUID 的 Pack 指令。

由于:

  • 2.5.0

'H*'.冻结

实例属性摘要折叠

实例方法摘要折叠

Dirtyable 包含的方法

#dirty! , #dirty?

构造函数详情

#初始化ServerSession

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

初始化 ServerSession。

例子:

ServerSession.new

由于:

  • 2.5.0



72
73
74
75
76
# File 'lib/ Mongo/session/server_session.rb', line 72

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

实例属性详细信息

# last_use对象(只读)

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

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

由于:

  • 2.5.0



45
46
47
# File 'lib/ Mongo/session/server_session.rb', line 45

def last_use
  @last_use
end

# txn_num对象(只读)

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

当前事务编号。

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

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

由于:

  • 2.5.0



64
65
66
# File 'lib/ Mongo/session/server_session.rb', line 64

def txn_num
  @txn_num
end

实例方法详细信息

#检查string

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

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

例子:

检查会话对象。

session.inspect

返回:

  • ( string )

    会话检查。

由于:

  • 2.5.0



120
121
122
# File 'lib/ Mongo/session/server_session.rb', line 120

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



108
109
110
# File 'lib/ Mongo/session/server_session.rb', line 108

def next_txn_num
  @txn_num += 1
end

#session_idBSON::Document

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

此服务器会话的会话 ID。

例子:

获取会话 ID。

server_session.session_id

返回:

  • ( BSON::Document )

    会话 ID。

由于:

  • 2.5.0



98
99
100
101
# File 'lib/ Mongo/session/server_session.rb', line 98

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



86
87
88
# File 'lib/ Mongo/session/server_session.rb', line 86

def set_last_use!
  @last_use = 时间.now
end