Classe: Mongo::Session::ServerSession Privado

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/session/server_session.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Um objeto que representa a sessão do lado do servidor.

Desde:

  • 2.5.0

Colapsode resumo constante

DASH_REGEX =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Regex para remover traços da string UUID.

Desde:

  • 2.5.0

/\-/.congelar
UUID_PACK =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Diretiva de pacote para o UUID.

Desde:

  • 2.5.0

'H*'.congelar

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize ➤ ServerSession

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicialize uma ServerSession.

Exemplos:

ServerSession.new

Desde:

  • 2.5.0



69
70
71
72
73
# File 'build/ruby-driver-v2.19/lib/mongo/session/server_session.rb', linha 69

def inicializar
  set_last_use!
  session_id
  @txn_num = 0
end

Detalhes do atributo da instância

#last_use ➤ Object (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

A última vez que a sessão do servidor foi usada.

Desde:

  • 2.5.0



42
43
44
# File 'build/ruby-driver-v2.19/lib/mongo/session/server_session.rb', linha 42

def last_use
  @last_use
end

#txn_num ➤ Object (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

O número da transação atual.

Quando uma transação está ativa, todas as operações nessa transação usam o mesmo número de transação. Se a transação inteira for reiniciada (por exemplo, por Session#with_transaction, caso em que ela também invocaria o bloqueio fornecido a ela novamente), cada tentativa de transação terá seu próprio número de transação.

O número da transação também é usado fora das transações para retryable writes. Nesse caso, cada operação de gravação tem seu próprio número de transação, mas as novas tentativas de uma operação de gravação usam o mesmo número de transação que a primeira gravação (que é como o servidor sabe que as gravações subsequentes são novas tentativas e devem ser ignoradas se a primeira gravação for bem-sucedida em o servidor, mas não foi lido pelo cliente, por exemplo).

Desde:

  • 2.5.0



61
62
63
# File 'build/ruby-driver-v2.19/lib/mongo/session/server_session.rb', linha 61

def txn_num
  @txn_num
end

Detalhes do método de instância

#inspecionarstring

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Obtenha uma string formatada para uso na inspeção.

Exemplos:

Inspecione o objeto de sessão.

session.inspect

Retorna:

  • (string)

    A inspeção da sessão.

Desde:

  • 2.5.0



117
118
119
# File 'build/ruby-driver-v2.19/lib/mongo/session/server_session.rb', linha 117

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

#próximo_txn_num ➤ Inteiro

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Aumente o número da transação atual e retorne o novo valor.

Retorna:

  • (Inteiro)

    O número da transação atualizado.

Desde:

  • 2.5.0



105
106
107
# File 'build/ruby-driver-v2.19/lib/mongo/session/server_session.rb', linha 105

def próximo_txn_num
  @txn_num += 1
end

#session_idBSON::Document

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

A ID da sessão desta sessão do servidor .

Exemplos:

Obtenha a ID da sessão.

server_session.session_id

Retorna:

  • (BSON::Document)

    A ID da sessão.

Desde:

  • 2.5.0



95
96
97
98
# File 'build/ruby-driver-v2.19/lib/mongo/session/server_session.rb', linha 95

def session_id
  @session_id ||= (bytes = [SecureRandom.uuid.gsub(DASH_REGEX, '')].embalar(UUID_PACK)
                    BSON::Documento.Novo(ID: BSON::Binário.Novo(bytes, :uuid)))
end

#set_last_use!Tempo

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Atualize o atributo last_use da sessão do servidor para agora.

Exemplos:

Defina o último campo de uso como agora.

server_session.set_last_use!

Retorna:

  • (Tempo)

    A última vez que a sessão foi usada.

Desde:

  • 2.5.0



83
84
85
# File 'build/ruby-driver-v2.19/lib/mongo/session/server_session.rb', linha 83

def set_last_use!
  @last_use = Hora.agora
end