Histórico da Página
Atribui um valor máximo de espera (ou timeout) para a recepção de mensagens repostas de comandos vindas do servidor.
Sintaxe
Bloco de código |
---|
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
- 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á;- O A chamada método
::SetRecvTimeout()
não retorna 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 e essa informação será registrada na propriedade::lOk
, que conterá.F.
Exemplos
Exemplo 1 - uso básico de ::SetRecvTimeout() Toggle Cloak
Toggle Cloak |
---|
Cloak |
---|
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
.
Veja também
Exemplos
Bloco de código | ||||
---|---|---|---|---|
| ||||
#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. |
Veja também
Visão Geral
Import HTML Content
Conteúdo das Ferramentas