Polecenia | Pobieranie wiadomości AMQP

Pobieranie wiadomości jest zadaniem Synchronicznym, co oznacza, że to klient pyta serwer, czy w kolejce znajdują się wiadomości. Alternatywną metodę opisano w sekcji Asynchroniczne odbieranie wiadomości.

 

Pobierz wiadomość

Metoda GetMessage wysyła żądanie do serwera AMQP z pytaniem, czy w kolejce są dostępne wiadomości. Jeśli są, zostaną dostarczone przez zdarzenie OnAMQPBasicGetOk; jeśli kolejka jest pusta, wywoływane jest zdarzenie OnAMQPBasicGetEmpty.

 

Metoda przyjmuje następujące argumenty:

 

 


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;

Wywołanie synchroniczne można wykonać, wywołując metodę GetMessageEx; metoda zwraca True, jeśli w kolejce są dostępne wiadomości, w przeciwnym razie zwraca False.