Histórico da Página
...
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 | ||||
|---|---|---|---|---|
| ||||
|
...
| Bloco de código | ||
|---|---|---|
| ||
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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
Local oClient := tAmqp():New("localhost",5672,"guest","guest",1)
|
2. Conectando ao servidor com um VHost personalizado
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
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. | ||
| bisPassive | lógico | Indica 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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oSender:QueueDeclare(cFila,bisDurable,bisExclusive,bisAutodelete ) |
tAmqp:ExchangeDeclare
ria Cria uma nova exchange no AMQP Server.
...
| Bloco de código | ||
|---|---|---|
| ||
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. | ||
| 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. | ||
| bisAutodelete | lógico | Indica que a mensagem irá automaticamente ser deletada na primeira tentativa de resgate pelo consumer. |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:BasicConsume("test_queue", bAck, bWaitingEvent) |
...
| Bloco de código | ||
|---|---|---|
| ||
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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
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 | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:BasicAck(ctag, bmultiple) |
...
| Bloco de código | ||
|---|---|---|
| ||
CorrelationID() |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:CorrelationID() |
...
| Bloco de código | ||
|---|---|---|
| ||
oRecv:MessageCount() |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:MessageCount() |
...
| Bloco de código | ||
|---|---|---|
| ||
oRecv:ConsumerCount() |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:ConsumerCount() |
...
| Bloco de código | ||
|---|---|---|
| ||
Error() |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:Error() |
...
| Bloco de código | ||
|---|---|---|
| ||
ReplyTo() |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:ReplyTo() |
...
| Bloco de código | ||
|---|---|---|
| ||
Status() |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:Status() |
...
| Bloco de código | ||
|---|---|---|
| ||
Tag() |
Exemplos
| Bloco de código | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
oRecv:Tag() |
...