Histórico da Página
Dispara a execução de um comando a ser processado pelo servidor Redis.
Sintaxe
Bloco de código |
---|
oRedisClient:Exec(cCommand, [ @retVal ]) |
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência | Observações |
---|---|---|---|---|---|
cCommand | Caractere | Comando Redis a ser executado | X | ||
retVal | Variável | Receberá o resultado da execução | X |
Observações
O método ::Execute()
é muito semelhante em propósito ao método ::Append()
: ambos disparam a execução de comandos no servidor Redis.
A maior diferença é que o programa que dispare ::Execute()
terá que aguardar seu término e receberá dele o resultado do comando, ao passo que um programa que dispare ::Append()
terá que chamar ::GetReply()
para obter o resultado da execução do comando.
Isto torna ::Append()
ideal para a programação assíncrona e concorrente, ao passo que ::Exec()
fica limitado à programação sequencial e síncrona.
Um ponto importante é que o resultado da função é passado para o parâmetro retVal
, que deve por isso ser passado por referência. ::Exec()
também altera o estado do objeto sobre o qual é chamado. Por isso, também as propriedades do objeto terão que ser avaliadas depois da chamada ao método ::Exec()
Exemplos
Bloco de código | ||
---|---|---|
| ||
#include 'protheus.ch' User Function redisTst() Local retVal := Nil oRedisCli:= tRedisClient():New() // Setup Redis connection oRedisCli:Connect("tec-clima", 6379, "") If oRedisClient:lConnected // Set the field 'x' to the value 'aaa' oRedisCli:Exec("set x aaa", @retVal) ConOut("Result of Exec(): " + retVal) VarInfo("State of the object: ", oRdClient) oRdClient:Disconnect() Return .T. EndIf Return .F. |