Enfileira um comando na fila de comandos para serem processados pelo servidor Redis.
Sintaxe
oRedisAfter := oRedisClient:Append(cCommand [ , cParameter ])
Parâmetros
| Nome | Tipo | Descrição | Obrigatório | Referência | Observações |
|---|---|---|---|---|---|
cCommand | Caracter | Comando a ser enfileirado | X | Pode conter ? que será preenchida por parâmetro | |
cParameter | Caracter | Complemento do comando | Substituirá a interrogação (ou ?) eventual no comando. |
Retorno
| Nome | Tipo | Descrição | Observações |
|---|---|---|---|
oRedisAfter | objeto tRedisClient | Cópia do objeto sobre o qual foi feita a chamada, alterado por ela.* |
* Isto permite acoplar outros métodos e propriedades à chamada de ::Append()
Por exemplo, oRedisCli:Append(cCommand, @retVal):lOk
testará se o comando foi bem sucedido, sem a necessidade de uma consulta à parte a ::lOk sobre o objeto oRedisClient.
Observações
Alguns comandos admitem parâmetros adicionais. Neste caso, para facilidade de programação, pode-se ter uma string de comando fixa (ou constante), com possibilidade de substituição por variáveis nos pontos onde for inserido um ponto de interrogação, o caracter ?::Append() apenas enfileira comandos para processamento pelo servidor Redis. A resposta a eles deve ser obtida por chamadas de ::GetReply()
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() aguardará seu término e receberá dele o resultado do comando.
Isto torna ::Append() ideal para a programação assíncrona e concorrente do servidor Redis, ao passo que ::Exec() fica limitado à programação sequencial e síncrona.
Exemplos
#include 'protheus.ch'
User Function redisTst()
oRedisCli:= tRedisClient():New()
// Setup Redis connection
oRedisCli:Connect("tec-clima", 6379, "")
If oRedisClient:lConnected
// Set the field 'x' to the value 'aaa'
oRedisCli:Append("set x ?", "aaa")
retVal := oRedisCli:GetReply()
ConOut(retVal)
oRdClient:Disconnect()
Return .T.
EndIf
Return .F.