import.css=/download/attachments/6062824/tecnologia.css |
Cria um Serviço de compartilhamento de Dados em cache de memória permitindo que os dados sejam armazenados em estrutura de Lista de mensagens.
Este serviço pode ser usado para compartilhar dados entre servidores, permitindo troca de informações entre eles e e com isto permitindo também a continuação de tarefas iniciadas em um servidor e finalizadas em outro.
Cria uma infra estrutura que permite uma "granularização" das tarefas que podem ser executadas por quaisquer servidores.
A Lista pode ser criada para Windows e Linux usando o serviço do Redis como infra-estrutura (Serviço de Cache)
#include 'protheus.ch' // Setup Redis Static cRedisHost := "tec-clima" Static nRedisPort := 6379 User Function LstPut() Local nRet := 0 // ID da mensagem Local cMsgId1 := "id1" // 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 Lista Local cListName := "Lista_TQLS" // Objeto de Lista Local oTQLS := Nil Local cMsgGet := "" // Cria um novo objeto de Lista oTQLS := TListSvc():New(cListName) If(oTQLS == Nil) ConOut("### ERRO ### " + "Erro na criacao da Lista - " + cListName) Return .F. Else ConOut("Criacao da Lista OK - " + oTQLS:cName) EndIf // Configurando a Lista 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 Lista OK - " + oTQLS:cName + " nMsgRetPer: " + AllTrim(Str(oTQLS:nMsgRetPer))) 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 Lista OK - " + oTQLS:cName + " com ID: " + cMsgId1 + " Tamanho: " + AllTrim(Str(Len(cMsg)))) EndIf // Obtem uma mensagem nRet := oTQLS:GetMsg( cMsgId1, @cMsgGet ) If nRet != 0 ConOut("### ERRO ### " + "Erro ao receber mensagem" + " Erro: " + AllTrim(Str(nRet))) Return .F. Else ConOut("Recebeu msg Lista OK - " + oTQLS:cName + " com ID: " + cMsgId1 + " Tamanho: " + AllTrim(Str(Len(cMsgGet)))) EndIf // Removendo uma mensagem nRet := oTQLS:DelMsg( cMsgId1 ) If nRet != 0 ConOut("### ERRO ### " + "Erro ao remover mensagem" + " Erro: " + AllTrim(Str(nRet))) Return .F. Else ConOut("Removeu msg Lista OK - " + oTQLS:cName + " com ID: " + cMsgId1) EndIf Return .T. |
Para Windows a versão requer uma biblioteca para acesso ao Redis (rdwincli.dll).
Arquivos: rdwincli_32bits.zip | rdwincli_64bits.zip
Totvs Application Server com release superior a 7.00.131227A-20160120 NG