Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 23 Próxima »

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

Sintaxe

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

  • 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;

  • 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.

Exemplos

#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 .F.



  • Sem rótulos