Comandos | Obter Mensagens AMQP

Obter mensagens é uma tarefa Síncrona, o que significa que é o cliente que pergunta ao servidor se há mensagens na fila. Você pode ler um método alternativo para Receber Mensagem de Forma Assíncrona.

 

Get Message

O método GetMessage envia uma requisição ao servidor AMQP perguntando se há mensagens disponíveis em uma fila. Se houver mensagens, elas serão despachadas no evento OnAMQPBasicGetOk e, se a fila estiver vazia, o evento OnAMQPBasicGetEmpty será chamado.

 

O método tem os seguintes argumentos:

 

 


AMQP.GetMessage('channel_name', 'queue_name');
 
procedure OnAMQPBasicGetOk(Sender: TObject; const aChannel: string; 
  const aGetOk: TsgcAMQPFramePayload_Method_BasicGetOk; 
  const aContent: TsgcAMQPMessageContent);
begin
  DoLog('#AMQP_basic_GetOk: ' + aChannel + ' ' + IntToStr(aGetOk.MessageCount) + ' ' + aContent.Body.AsString);
end;
 
procedure OnAMQPBasicGetEmpty(Sender: TObject; const aChannel: string);
begin
  DoLog('#AMQP_basic_GetEmpty: ' + aChannel);
end;

Uma chamada Síncrona pode ser feita apenas chamando o método GetMessageEx; este método retorna true se a fila tiver mensagens disponíveis, caso contrário, o resultado será false.