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
Nome | Tipo | Descrição | Obrigatório | Referência | Observaçõ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éstRedisClient
do qual foi chamado.
Em vez disso::SetRecvTimeout()
retorna o próprio objetotRedisClient
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.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas