AMQP Consume Messages

Consumer konsumieren aus Warteschlangen. Um Nachrichten zu konsumieren, muss es eine Warteschlange geben. Wenn ein neuer Consumer hinzugefügt wird, beginnen die Zustellungen sofort, sofern bereits Nachrichten in der Warteschlange bereitstehen.

Die Ziel-Queue kann zum Zeitpunkt der Konsumentenregistrierung leer sein. In diesem Fall finden die ersten Zustellungen statt, wenn neue Nachrichten in die Queue gestellt werden.

 

Das Konsumieren von Nachrichten ist eine asynchrone Aufgabe, was bedeutet, dass jedes Mal, wenn eine neue Nachricht an die Consumer-Queue zugestellt werden kann, sie automatisch vom Server an den Client gepusht wird. Sie können eine alternative Methode zum synchronen Empfangen von Nachrichten lesen.

 

Consume

Die Methode Consume erstellt einen neuen Consumer in der Warteschlange, und jedes Mal, wenn es eine neue Nachricht gibt, wird diese automatisch an den Consumer-Client übermittelt.

 

Die Methode hat die folgenden Argumente:

 

 

Die Nachrichten werden im Ereignis OnAMQPBasicDeliver zugestellt.

 


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;

Ein synchroner Aufruf kann einfach durch Aufrufen der Methode ConsumeEx erfolgen; diese Methode gibt true zurück, wenn der Consumer erstellt wurde, und false, wenn keine Bestätigung vom Server eingegangen ist.

 

Consume abbrechen

Diese Methode wird verwendet, um eine vorhandene Konsumenten-Queue zu stornieren.

 

Die Methode hat die folgenden Argumente:

 

 


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

Ein synchroner Aufruf kann einfach durch Aufruf der Methode CancelConsumeEx erfolgen; diese Methode gibt true zurück, wenn der Consumer abgebrochen wurde, und false, wenn keine Bestätigung vom Server eingetroffen ist.