Classe: Mongo::Session::ServerSession Privado
- Herda:
-
Objeto
- Objeto
- Mongo::Session::ServerSession
- Inclui:
- Sujáveis
- Definido em:
- lib/mongo/session/server_session.rb,
lib/mongo/session/server_session/dirtyable.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.
Definido sob namespace
Módulos: Sujáveis
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.
/\-/.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.
'H*'.congelar
Recolhimento do Resumo do atributo de instância
-
#last_use ➤ Objeto
Somente leitura
privado
A última vez que a sessão do servidor foi usada.
-
#txn_num ➤ Objeto
Somente leitura
privado
O número da transação atual.
Recolhimento do Resumo do método de instância
-
#initialize ➤ ServerSession
construtor
privado
Inicialize uma ServerSession.
-
#inspecionar ➤ string
privado
Obtenha uma string formatada para uso na inspeção.
-
#próximo_txn_num ➤ Inteiro
privado
Aumente o número da transação atual e retorne o novo valor.
-
#session_id ➤ BSON::Document
privado
A ID da sessão desta sessão do servidor .
-
#set_last_use! ➤ Tempo
privado
Atualize o atributo last_use da sessão do servidor para agora.
Métodos incluídos no Impossível
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.
72 73 74 75 76 |
# Arquivo 'lib/mongo/session/server_session.rb', linha 72 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.
45 46 47 |
# Arquivo 'lib/mongo/session/server_session.rb', linha 45 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).
64 65 66 |
# Arquivo 'lib/mongo/session/server_session.rb', linha 64 def txn_num @txn_num end |
Detalhes do método de instância
#inspecionar ➤ string
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.
120 121 122 |
# Arquivo 'lib/mongo/session/server_session.rb', linha 120 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.
108 109 110 |
# Arquivo 'lib/mongo/session/server_session.rb', linha 108 def próximo_txn_num @txn_num += 1 end |
#session_id ⇒ BSON::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 .
98 99 100 101 |
# Arquivo 'lib/mongo/session/server_session.rb', linha 98 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.
86 87 88 |
# Arquivo 'lib/mongo/session/server_session.rb', linha 86 def set_last_use! @last_use = Hora.agora end |