Obtém uma resposta do servidor, eventualmente listando erros e informações de status no console do servidor Protheus.

Sintaxe

oRedisAfter := oRedisClient:GetReply(@outParm)

Parâmetros

NomeTipoDescriçãoObrigatórioReferênciaObservações
outParmVariadosResposta de um comando Redis anteriormente executadoXX

Retorno

NomeTipoDescriçãoObservações
oRedisAfter
objeto tRedisClientCópia do objeto sobre o qual foi feita a chamada a ::GetReply(), alterado por ela.*

* Isto permite acoplar outros métodos e propriedades à chamada de ::GetReply()
   Por exemplo,
      oRedisClient:GetReply(@outParm):lOk

   testará se o comando foi bem sucedido, sem a necessidade de uma consulta à parte a ::lOk sobre o objeto oRedisClient.

Observações

  • O método ::GetReply() é associado ao método ::Append(), que enfileira a execução de comandos no servidor Redis, ao passo que ::GetReply() obtém o resultado dessa execução.
  • É a parceria entre ::Append() e ::GetReply() que permite a execução assíncrona de comandos, em concorrência com a execução do programa: podem-se enfileirar vários comandos através de ::Append() e posteriormente obter seus resultados através de ::GetReply(). Pode também haver um ganho de desempenho, pois o programa cliente não precisa aguardar a execução no comando no servidor, podendo ocupar esse tempo em outras atividades, para apenas consultar o resultado quando necessário.
  • Um ponto importante é que ::GetReply() retornará valores de tipos variados, de acordo com a resposta do comando que foi enviado por ::Append().

  • Para que o programa possa se preparar adequadamente para as respostas recebidas por ::GetReply()  – que podem ter sido geradas em ordem indefinida a priori --, é útil conhecer seu tipo. O que pode ser feito consultando-se a propriedade ::nReplyType do objeto tRedisClient.

Exemplos

Exemplo 1 – Execução do comando set do Redis

#include 'protheus.ch'
   
User Function ApndTstC()
  Local retVal       := Nil
  Local outParm      := Nil
  Local oRedisClient := Nil
   
  // Alocation of an object tRedisClient
  oRedisClient:= tRedisClient():New()
  
  // Connection to of client to a server
  oRedisClient:Connect("localhost", 6379, "")
  
  If oRedisClient:lConnected
    // Set the field 'x' to the value 'aaa' and gets reply
    retVal := oRedisClient:Append('set x "aaa"')
    VarInfo("Result of ::Append()", retVal)
     
    retVal := oRedisClient:GetReply(@outParm)
  
    // Will display .T., since ::GetReply() returns the status of the last append()
    VarInfo("Output of ::GetReply()", outParm)
    
    // Will display the state of the Redis client object, after ::GetReply()
    VarInfo("Result of ::GetReply()", retVal)
  
    oRedisClient:Disconnect()
    Return .T.
  EndIf
  
Return .F.