Cria um interface de acesso ao Redis, que é um gerenciador de armazenamento do tipo chave-valor. Seus usos típicos incluem message brokers (ou tratador de mensagens) ou cache de bancos de dados.
Hierarquia
Construtores
Propriedades
Carregando...
Métodos
Carregando...
Exemplos
Exemplo 1Expandir origem
#include 'protheus.ch'
// Setup Redis
Static cRedisHost := "tec-clima"
Static nRedisPort := 6379
User Function FilPut()
Local nRet := 0
// ID da mensagem
Local cMsgId1 := ""
// Mensagem a enviar
Local cMsg := '{"inteiro":100,"double":10.32,"OK":true,"NOK":false,"NULO":null,"VAZIO":"","ROWS":[{"Valor":5000,"OBJ":{"x":2},"Data":"2014-08-29"}, "ricardo"], "VETOR":[1,2,3,4]}'
// Nome da Fila
Local cQueueName := "Fila_TQLS"
// Objeto de Fila
Local oTQLS := Nil
Local nNO_MSGS := 0
Local cMsgGet := ""
// Cria um novo objeto de Fila
oTQLS := TQueueSvc():New(cQueueName)
If(oTQLS == Nil)
ConOut("### ERRO ### " + "Erro na criacao da Fila - " + cQueueName)
Return .F.
Else
ConOut("Criacao da Fila OK - " + oTQLS:cName)
EndIf
// Configurando a Fila
nRet := oTQLS:Setup(cRedisHost, nRedisPort)
If nRet != 0
ConOut("### ERRO ### " + "Erro ao fazer o Setup" + " Erro: " + AllTrim(Str(nRet)))
Return .F.
Else
ConOut("Setup de Fila OK - " + oTQLS:cName + " nMsgRetPer: " + AllTrim(Str(oTQLS:nMsgRetPer)) + " nVisTimeOut: " + AllTrim(Str(oTQLS:nVisTimeOut)))
EndIf
// Gravando uma mensagem
nRet := oTQLS:PutMsg( @cMsgId1, cMsg )
If nRet != 0
ConOut("### ERRO ### " + "Erro ao enviar mensagem" + " Erro: " + AllTrim(Str(nRet)))
Return .F.
Else
ConOut("Enviou msg Fila OK - " + oTQLS:cName + " com ID: " + cMsgId1 + " Tamanho: " + AllTrim(Str(Len(cMsg))))
EndIf
// Obtendo valor de indicacao de que nao tem mais mensagens
nNO_MSGS := oTQLS:eNO_MSGS
// Obtem a mensagem
nRet := oTQLS:WaitMsg( @cMsgId1, @cMsgGet, , 3 )
If nRet != 0
If(nRet == nNO_MSGS)
ConOut("OK, nao existem mensagens na Fila.")
Else
ConOut("### ERRO ### " + "Erro ao receber mensagem" + " Erro: " + AllTrim(Str(nRet)))
Return .F.
EndIf
Else
ConOut("Recebeu msg Fila OK - " + oTQLS:cName + " com ID: " + cMsgId1 + " Tamanho: " + AllTrim(Str(Len(cMsgGet))))
EndIf
// Removendo a mensagem
nRet := oTQLS:DelMsg( cMsgId1 )
If nRet != 0
ConOut("### ERRO ### " + "Erro ao remover mensagem" + " Erro: " + AllTrim(Str(nRet)))
Return .F.
Else
ConOut("Removeu msg Fila OK - " + oTQLS:cName + " com ID: " + cMsgId1)
EndIf
Return .T.
Observações
Para Windows a versão requer uma biblioteca para acesso ao Redis (rdwincli.dll).