Comandos | Obtener mensajes AMQP

Obtener mensajes es una tarea Síncrona, lo que significa que es el cliente quien le pregunta al servidor si hay mensajes en la cola. Puede consultar un método alternativo para Recibir Mensajes de Forma Asíncrona.

 

Obtener mensaje

El método GetMessage envía una solicitud al servidor AMQP preguntando si hay mensajes disponibles en una cola. Si hay mensajes, estos se enviarán a través del evento OnAMQPBasicGetOk; si la cola está vacía, se llamará al evento OnAMQPBasicGetEmpty.

 

El método tiene los siguientes 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;

Se puede realizar una llamada síncrona invocando el método GetMessageEx; este método devuelve true si la cola tiene mensajes disponibles; de lo contrario, el resultado será false.