Commands | AMQP Get Messages

Das Abrufen von Nachrichten ist eine synchrone Aufgabe, was bedeutet, dass der Client den Server fragt, ob Nachrichten in der Queue vorhanden sind. Sie können eine alternative Methode zum asynchronen Empfangen von Nachrichten lesen.

 

Get Message

Die Methode GetMessage sendet eine Anfrage an den AMQP-Server, um zu erfragen, ob Nachrichten in einer Queue verfügbar sind. Wenn Nachrichten vorhanden sind, werden diese im Ereignis OnAMQPBasicGetOk zugestellt, und wenn die Queue leer ist, wird das Ereignis OnAMQPBasicGetEmpty aufgerufen.

 

Die Methode hat die folgenden Argumente:

 

 


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;

Ein synchroner Aufruf kann durch einfaches Aufrufen der Methode GetMessageEx erfolgen; diese Methode gibt true zurück, wenn die Queue verfügbare Nachrichten hat, andernfalls ist das Ergebnis false.