コマンド | AMQP メッセージの取得

メッセージの取得はタスクであり、つまりクライアントがキューにメッセージがあるかどうかをサーバーに尋ねます。メッセージを非同期に受信する代替方法を読むことができます。

 

メッセージを取得する

GetMessage メソッドは、キューにメッセージがあるかどうかを確認するリクエストを AMQP サーバーに送信します。メッセージがある場合は OnAMQPBasicGetOk イベントでディスパッチされ、キューが空の場合は OnAMQPBasicGetEmpty イベントが呼び出されます。

 

このメソッドには以下の引数があります:

 

 


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;

同期呼び出しは GetMessageEx メソッドを呼び出すだけで実行できます。このメソッドはキューにメッセージがある場合は True を返し、それ以外の場合は False を返します。