Commands | AMQP Get Messages

메시지를 가져오는 것은 Synchronous 작업입니다. 즉, 큐에 메시지가 있는지 서버에 묻는 것은 클라이언트입니다. 메시지를 비동기적으로 수신하는 대체 방법을 읽을 수 있습니다.

 

Get Message

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가 됩니다.