Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

A classe tAMQP representa um objeto de comunicação do tipo AMQP (Advanced Message Queuing Protocol) da versão 0.9.1, que se comunica com servidores RabbitMQ. A instancia de uma classe permite a comunicação, envio e recebimento de mensagens através de um servidor AMQP, sendo possível o desenvolvimento de diversos tipos de aplicações, realizando transações ou comunicações padronizadas, de forma assíncrona, indiferente da arquitetura de cada uma delas.

Essa classe foi desenvolvida com base na existente biblioteca RabbitMQ.Client desenvolvida para C# .Net, sendo inclusive possível ser usado como referencia a documentação presente em https://www.rabbitmq.com/tutorials/tutorial-one-dotnet.html, assim como montar o ambiente de um servidor AMQP em https://www.rabbitmq.com/#getstarted.

Informações
icontrue
titleObservações
  • Atualmente é compativel apenas com o protocolo 0.9.1

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
#define AMQP_AUTODELETE .T.
#define AMQP_EXCLUSIVE .T.
#define AMQP_DURABLE .T.
#define AMQP_PERSISTENT .T.
#define AMQP_AUTOACK .T.
#define fixed_channel_id 1

User Function _sender

Local oSender := tAmqp():New("localhost",5672,"guest","guest",fixed_channel_id)

oSender:QueueDeclare("test_queue", .F.,.F.,AMQP_AUTODELETE )
oSender:BasicPublish("","test_queue", AMQP_PERSISTENT, "hello world!")
u___Receiver()
Freeobj(oSender)
Return



User Function _Receiver


Local oRecv := tAmqp():New("localhost",5672,"guest","guest",fixed_channel_id)
local var

oRecv:QueueDeclare("test_queue", .F.,.F.,AMQP_AUTODELETE)
oRecv:BasicConsume("test_queue", AMQP_AUTOACK, )

var := oRecv:Body
 
Freeobj(oRecv)

Return

Abrangência

17.3.0.x

Hierarquia

  • tAMQP

Construtores

Construtor tAmqp:New

Cria um objeto tAMQP com um determinado AMQP Server.

Sintaxe

Bloco de código
collapsefalse
 tAmqp():New( < uParam1 >, [ uParam2 ], [ uParam3 ], [ uParam4 ], [ uParam5 ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

uParam1

caractere

Endereço do AMQP Server

X


uParam2

numérico

Porta do AMQP Server



uParam3

caractere

Usuário para logar na fila do AMQP Server



uParam4

caractere

Senha para logar na fila do AMQP Server



uParam5

Propriedades

Métodos

...

tAMQP:QueueDeclare

...

tAMQP:BasicPublish

...

tAMQP:BasicConsume

caractere

Canal da comunicação com o AMQP Server



Retorno

Nome

Tipo

Descrição

oObj

objeto

Nova instância da classe tAmqp

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  Local oClient := tAmqp():New("localhost",5672,"guest","guest",1)


Propriedades

tAmqp:ChannelNumber

Indica qual canal esta sendo usado para a fila atual

Tipo

Valor Padrão

Somente Leitura

numérico

N/A

N


tAmqp:Body

Conteudo da mensagem recebida após uma solicitação ao server AMQP via BasicConsume()

Tipo

Valor Padrão

Somente Leitura

caractere

""

N


tAmqp:ConsumeTimeout

Indica qual o timeout atual que esta sendo usado para a comunicação com o AMQP

Tipo

Valor Padrão

Somente Leitura

numérico

5

N


Métodos

tAmqp:QueueDeclare

Cria uma nova fila no AMQP Server.

Sintaxe

Bloco de código
collapsefalse
QueueDeclare( [ cFila ], [ bisDurable ], [ bisExclusive ], [ bisAutodelete ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cFila

caractere

Indica o nome da fila onde será criada .

 

 

bisDurable

lógico

Propriedade da fila bisDurable (TODO DOC).

 

 

bisExclusive

lógico

Propriedade da fila bisExclusive (TODO DOC).

 

 

bisAutodelete

lógico

Propriedade da fila bisAutodelete (TODO DOC).

 

 

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oSender:QueueDeclare(cFila,bisDurable,bisExclusive,bisAutodelete )

tAmqp:BasicConsume

Resgata uma mensagem no AMQP Server.

Sintaxe

Bloco de código
collapsefalse
BasicConsume( < cFila >, < bAck >, < bWaitingEvent > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cFila

caractere

Indica o nome da fila onde será resgatada .

X


bAck

lógico

Indica se o consumo irá ser autoack.

X


bWaitingEvent

lógico

Ignora o timeout e se fica aguardando por uma nova mensagem na fila.

X


Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:BasicConsume("test_queue", bAck, bWaitingEvent)


tAmqp:BasicPublish

Envia uma mensagem para o AMQP Server.

Sintaxe

Bloco de código
collapsefalse
BasicPublish( < cExchange >, < cFila >, [ nPERSISTENT ], [ cMsg ], [ correlationID ], [ ReplyTo ] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cExchange

caractere

Indica o nome da exchage onde será enviada a mensagem .

X


cFila

caractere

Indica o nome da fila onde será enviada a mensagem .

X


nPERSISTENT

lógico

Indica a requisição será persistente.



cMsg

caractere

Informa a mensagem a ser postada



correlationID

caractere

Id de correlação



ReplyTo

caractere

Fila para resposta dessa mensagem



Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:BasicPublish("test_exchange", "test_queue", AMQP_PERSISTENT, "Hello World!" )


tAmqp:BasicQos

Seta para a conexão atual parametros QoS(quality of service)

Sintaxe

Bloco de código
collapsefalse
BasicQos( < cprefetchSize >, < cprefetchCount >, < bglobal > )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cprefetchSize

numérico

Indica cprefetchSize (TODO)

X


cprefetchCount

numérico

Indica cprefetchCount (TODO)

X


bglobal

lógico

Indica bglobal (TODO)

X


Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:BasicQos(cprefetchSize, cprefetchCount, bglobal)

tAmqp:CorrelationID

Indica qual a informação de correlação da mensagem recebida

Sintaxe

Bloco de código
collapsefalse
CorrelationID()

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:CorrelationID()


tAmqp:Error

Descreve o erro da ultima operação realizada

Sintaxe

Bloco de código
collapsefalse
Error()

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:Error()


tAmqp:QueueName

Indica qual o nome da fila atual que esta sendo usado

Sintaxe

Bloco de código
collapsefalse
QueueName()


tAmqp:ReplyTo

Informa qual a deve ser a fila solicitada para a resposta da mensagem recebida

Sintaxe

Bloco de código
collapsefalse
ReplyTo()

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:ReplyTo()


tAmqp:Status

Informa o código de erro da ultima operação realizada

Sintaxe

Bloco de código
collapsefalse
Status()

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:Status()

...