Commandes | AMQP Obtenir des messages

Obtenir des messages est une tâche Synchrone, ce qui signifie que c'est le client qui demande au serveur s'il y a des messages dans la file d'attente. Vous pouvez lire une méthode alternative pour Recevoir des messages de manière asynchrone.

 

Obtenir le message

La méthode GetMessage envoie une requête au serveur AMQP pour demander si des messages sont disponibles dans une file d'attente. S'il y a des messages, ceux-ci seront envoyés via l'événement OnAMQPBasicGetOk et si la file d'attente est vide, l'événement OnAMQPBasicGetEmpty sera appelé.

 

La méthode possède les arguments suivants :

 

 


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;

Un appel synchrone peut être effectué simplement en appelant la méthode GetMessageEx ; cette méthode retourne true si la file d'attente contient des messages disponibles, sinon le résultat sera false.