AMQP Consume Messages

Os consumidores consomem de filas. Para consumir mensagens, deve haver uma fila. Quando um novo consumidor é adicionado, supondo que já existam mensagens prontas na fila, as entregas começarão imediatamente.

A fila de destino pode estar vazia no momento do registro do consumidor. Nesse caso, as primeiras entregas ocorrerão quando novas mensagens forem enfileiradas.

 

Consumir mensagens é uma tarefa assíncrona, o que significa que toda vez que uma nova mensagem pode ser entregue à fila do consumidor, ela é enviada pelo servidor ao cliente automaticamente. Você pode ler um método alternativo em Receber Mensagem de Forma Síncrona.

 

Consume

O método Consume cria um novo consumidor na fila, e toda vez que houver uma nova mensagem, ela será entregue automaticamente ao cliente consumidor.

 

O método tem os seguintes argumentos:

 

 

As mensagens são entregues no evento OnAMQPBasicDeliver .

 


AMQP.Consume('channel_name', 'queue_name', 'consumer_tag');
 
procedure OnAMQPBasicDeliver(Sender: TObject;
  const aChannel: string;
  const aDeliver: TsgcAMQPFramePayload_Method_BasicDeliver;
  const aContent: TsgcAMQPMessageContent);
begin
  DoLog('#AMQP_basic_deliver: ' + aChannel + ' ' + aDeliver.ConsumerTag + ' ' +
    ' ' + aContent.Body.AsString);
end;

Uma chamada Síncrona pode ser feita apenas chamando o método ConsumeEx; este método retorna true se o Consumer foi criado e false se nenhuma confirmação do servidor chegou.

 

Cancel Consume

Este método é usado para Cancelar uma fila de consumidor existente.

 

O método tem os seguintes argumentos:

 

 


AMQP.CancelConsume('channel_name', 'consumer_tag');
 
procedure OnAMQPBasicCancelConsume(Sender: TObject; const aChannel: string; const aConsumerTag);
begin
  DoLog('#AMQP_basic_cancel_consume: ' + aChannel + ' ' + aConsumerTag);
end;

Uma chamada síncrona pode ser feita simplesmente chamando o método CancelConsumeEx; este método retorna true se o Consumer foi cancelado e false se nenhuma confirmação do servidor chegou.