Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Atribui um valor máximo de espera (ou timeout) para a recepção de repostas de comandos vindas do servidor.

Sintaxe

Bloco de código
oRedisAfter := oRedisClient:SetRecvTimeout(nTimeInSeconds)

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
nTimeInSeconds
numérico

Número de segundos máximo a esperar; frações de segundo podem ser usadas

X

Retorno


Observações

  • Caso o método ::SetRecvTimeout() receba como parâmetro um valor inadequado de tempo de timeout, negativo ou nulo, o valor anterior não será alterado, e nem haverá indicação de erro.

  • O método ::SetRecvTimeout() altera diretamente o valor da propriedade ::nTimeout.  Apenas ele pode alterá-la;

  • O método ::SetRecvTimeout() é muito importante para aplicações críticas que dependam de tempo de resposta preciso; isto é: quanto o tempo o servidor Redis levará para responder.

  • ::SetRecvTimeout() também é útil para uma aplicação que interaja com um servidor Redis ou muito ocupado, ou muito instável, pois permite ajustar o limite máximo de tempo que o cliente poderá aguardar por uma resposta, antes de considerar que ela não virá;

  • A chamada método ::SetRecvTimeout() não gera um valor específico de resultado, e isto é indicado pelo valor negativo na propriedade ::nReplyType do objeto através tRedisClient do qual foi chamado.

    Em vez disso ::SetRecvTimeout() retorna o próprio objeto tRedisClient sobre o qual foi chamado.

  • Para avaliar o efeito de ::SetRecvTimeout(), e confirmar sua ação, deve-se consultar a propriedade ::nTimeout.

Exemplos

Bloco de código
languagecpp
linenumberstrue
#include 'protheus.ch' // Setup Redis Static cRedisHost := "localhost" Static nRedisPort := 6379 Static cRedisAuth := "" User Function SetTout() Local oRedisClient := Nil Local retVal := Nil oRedisClient := tRedisClient():New() oRedisClient:Connect(cRedisHost, nRedisPort, cRedisAuth) VarInfo('oRedisClient after Connect()', oRedisClient) If oRedisClient:lConnected ConOut("Successful connection.") // Sets timeout of server answers to 10 seconds retVal := oRedisClient:SetRecvTimeout(10) VarInfo('Result of ::SetRecvTimeout()', retVal) // TODO Redis store manipulation commands oRedisClient:Disconnect() ConOut("The client was disconnected from the server.") Return .T. EndIf Return
  • ;

  • Caso o servidor não responda um comando emitido pelo cliente em um tempo (em segundos) menor do que o valor especificado em ::SetRecvTimeout(), o comando retornará com erro e essa informação será registrada na propriedade ::lOk, que conterá .F.

Exemplos

Exemplo 1 - uso básico de ::SetRecvTimeout()
Toggle Cloak

Cloak
cpptrue

A função de usuário SetTout()  mostra a ação de ::SetRevTimeout() de duas formas: a listagem dos atributos do objeto tRedisClient através de VarInfo(), e através da impressão direta da propriedade ::nTimeout

.F

.