Á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

Indica qual canal esta sendo usado para a fila atual. Os canais são "planos privados" dentro da mesma conexão TCP”. Ou seja, é necessária apenas uma instância de conexão na mesma porta, e podendo usar varias "subportas" sendo completamente independente de um canal para o outro.

Tipo

Valor Padrão

Somente Leitura

numérico

N/A

N

...

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

Tipo

Valor Padrão

Somente Leitura

caractere

""

N

...

Indica qual o timeout atual que esta sendo usado para a comunicação com o AMQPde um consumidor de uma exchange.

Tipo

Valor Padrão

Somente Leitura

numérico

5

N

...

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

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cFila

caractere

Indica o nome da fila onde será criada.



bisDurable

lógicoPropriedade

da fila bisDurable (TODO DOC)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ógicoPropriedade

da fila bisExclusive (TODO DOC)Indica que a fila será exclusiva a um único par producer/consumer.



bisAutodelete

lógicoPropriedade da fila bisAutodelete (TODO DOC)

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 )

...

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

Parâmetros

Indica binternal(TODO DOC)

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


bpassivebisPassive

lógico

Indica bpassive(TODO DOC).

bburablelógicoIndica bburable (TODO DOC).bauto_deletelógicoIndica binternal(TODO DOC).

binternal

lógico

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:QueueDeclareExchangeDeclare(cFilacexchange,bisDurable,bisExclusive,bisAutodelete )"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á ser autoackautomaticamente 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)

...

Bloco de código
collapsefalse
QueueBind( < cExchangecQueue >, < cQueuecExchange >, <[ croutingkey >] )

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

cExchangecQueue

caractere

Indica o nome da exchangefila.

X


cQueuecExchange

caractere

Indica o nome da filaexchange.

X


croutingkey

caractereIndica

o routingkey (TODO)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!" )


tAmqp:BasicQos

Seta Como as mensagens são enviadas (enviadas) para os clientes de forma assíncrona, geralmente há mais de uma mensagem "em trânsito" em um canal a qualquer momento. Com essa função, seta para a conexão atual parametros QoS(quality of service)um limite dessas mensagens a serem processadas (unacknowledged) pelo consumer. 

Sintaxe

Bloco de código
collapsefalse
BasicQos( < nprefetchSize >, < nprefetchCount >, < bglobal > )

...

Nome

Tipo

Descrição

Obrigatório

Referência

nprefetchSize

numérico

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

X


nprefetchCount

numérico

Indica cprefetchCount (TODO)o numero de mensagens que poderão ficar em aguardo na atual exchange.

X


bglobal

lógico

Indica bglobal (TODO)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)

...

Bloco de código
collapsefalse
BasicAck( < ctag>cDeliverytag>, < cmultiple>bMultiple>)

Parâmetros

Nome

Tipo

Descrição

Obrigatório

Referência

ctagcDeliverytag

caractere

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

X


cmultiplebMultiple

caracterelógico

Indica cmultiple (TODO)que varias mensagens serão setadas como Ack simultaneamente.

X


Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  oRecv:BasicQosBasicAck(cprefetchSizectag, cprefetchCount, bglobalbmultiple)

tAmqp:CorrelationID

Indica qual a informação de correlação "apelido" (correlação) da mensagem recebida

Sintaxe

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()

...

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()

...

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()

...