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á;- Por ora 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éstRedisClientdo qual foi chamado.
Em vez disso::SetRecvTimeout()retorna o próprio objetotRedisClientsobre 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. |
Import HTML Content
Visão Geral
Conteúdo das Ferramentas