Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 9 Atual »

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)


Hierarquia

  • TQueueListSvc

Construtores

Propriedades

Métodos

Exemplos

Exemplo 1
#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.

Observações

Para Windows a versão requer uma biblioteca para acesso ao Redis (rdwincli.dll).

Arquivos: rdwincli_32bits.zip  |  rdwincli_64bits.zip 

Abrangência

Totvs Application Server com release superior a 7.00.131227A-20160120 NG

Veja também

  • Sem rótulos