Árvore de páginas

Versões comparadas

Chave

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

...

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. Para qualquer informação sobre os conceitos de tipos de fila e comportamentos de recebimentos e envios de mensagens, favor também consultar esse site.

Informações
icontrue
titleObservações
  • Atualmente é compatível apenas com o protocolo 0.9.1

...

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

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

caractere

Canal da comunicação com o AMQP Server



uParam6 

caractere

Virtual Host (vhost) no servidor AMQP (padrão: "/")



Retorno

Nome

Tipo

Descrição

oObj

objeto

Nova instância da classe tAmqp

Exemplos:

1. Conectando ao servidor com vhost padrão ("/")

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

2. Conectando ao servidor com um VHost personalizado

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

A funcionalidade de VHosts está disponível a partir da versão 24.3.0.6 do Application Server.

Propriedades

tAmqp:ChannelNumber

...

Nome

Tipo

Descrição

Obrigatório

Referência

cFila

caractere

Indica o nome da fila onde será criada.



bisDurable

lógico

Indica que as mensagens serão guardadas mesmo se o servidor for reiniciado ou desligado, mantendo o estado da fila será mantido. Caso seja falso, as mensagens não serão recriadas caso o servidor seja reiniciado ou desligado.



bisExclusive

lógico

Indica que a fila será exclusiva a um único par producer/consumer.



bisAutodelete

lógico

Indica que, ao termino do producer enviar com sucesso a mensagem até o producer, ele irá se deletar.



bisPassivelógicoIndica que a função irá apenas verificar se existe uma fila com o nome indicado no AMQP Server, caso exista poderá ser verificar com "Status()", caso não exista não sera criado uma.

Exemplos

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

tAmqp:ExchangeDeclare

ria Cria uma nova exchange no AMQP Server.

...

Bloco de código
collapsefalse
QueueDeclareExchangeDeclare( [ cexchange ], [ ctype ], [ bisPassive ], [ bisDurable ], [ bisAutodelete ] )

...

Nome

Tipo

Descrição

Obrigatório

Referência

cexchange

caractere

Indica o nome da exchange

X


ctype

carectere

Indica o tipo da fila (fanout, direct, topic). *

X


bisPassive

lógico

Indica que a função irá apenas verificar se existe uma exchange com o nome indicado no AMQP Server, caso exista poderá ser verificar com "Status()", caso não exista não sera criado uma.



bisDurablelógicoIndica que as mensagens serão guardadas mesmo se o servidor for reiniciado ou desligado, mantendo o estado da fila será mantido. Caso seja falso, as mensagens não serão recriadas caso o servidor seja reiniciado ou desligado.

bisAutodeletelógicoIndica que a mensagem irá automaticamente ser deletada na primeira tentativa de resgate pelo consumer.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oSender:ExchangeDeclare(cexchange,"fanout",.F.,.F. )


tAmqp:BasicConsume

Resgata uma mensagem no AMQP Server.

...

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á automaticamente se marcar como entregue, caso contrario, o consumer deverá indicar que a mensagem foi entregue com o método :BasicAck().

X


bWaitingEvent

lógico

Ignora o timeout e se fica aguardando por uma nova mensagem na fila(no maximo por 30 segundos).

X


Exemplos

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

...

Nome

Tipo

Descrição

Obrigatório

Referência

cQueue

caractere

Indica o nome da fila.

X


cExchange

caractere

Indica o nome da exchange.

X


croutingkey

caractere

Determina um endereço virtual que o exchange pode usar para encaminhar a mensagem para a fila.



Exemplos

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

...

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

...

Nome

Tipo

Descrição

Obrigatório

Referência

cExchange

caractere

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

X


cFilacRoutingKey

caractere

Indica o nome da fila a classificação de onde será enviada a mensagem (fila, rota, etc.) na exchange.

X


nPERSISTENT

lógico

Indica que 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!" )

...

Nome

Tipo

Descrição

Obrigatório

Referência

nprefetchSize

numérico

Indica o limite do tamanho das mensagens que poderão ficar em aguardo na atual exchange.

X


nprefetchCount

numérico

Indica o numero de mensagens que poderão ficar em aguardo na atual exchange.

X


bglobal

lógico

Indica se a configuração atual será global ou não.

X


Exemplos

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

...

Nome

Tipo

Descrição

Obrigatório

Referência

cDeliverytag

caractere

Indica o nome da tag da(s) mensagem(s) que será marcadada como Ack(recebidas).

X


bMultiple

lógico

Indica que varias mensagens serão setadas como Ack simultaneamente.

X


Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:BasicAck(ctag, bmultiple)

...

Bloco de código
collapsefalse
CorrelationID()

Exemplos

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

...

Bloco de código
collapsefalse
oRecv:MessageCount()

Exemplos

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

...

Bloco de código
collapsefalse
oRecv:ConsumerCount()

Exemplos

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

...

Bloco de código
collapsefalse
Error()

Exemplos

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

...

Bloco de código
collapsefalse
ReplyTo()

Exemplos

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

...

Bloco de código
collapsefalse
Status()

Exemplos

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

...

Bloco de código
collapsefalse
Tag()

Exemplos

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

...