소비자는 큐에서 소비합니다. 메시지를 소비하려면 큐가 있어야 합니다. 새 소비자가 추가될 때 큐에 이미 준비된 메시지가 있다고 가정하면 전달이 즉시 시작됩니다.
대상 큐는 소비자 등록 시점에 비어 있을 수 있습니다. 이 경우 새 메시지가 큐에 추가될 때 첫 전달이 발생합니다.
메시지 소비는 비동기 작업이며, 이는 새 메시지가 소비자 큐에 전달될 수 있을 때마다 서버에 의해 자동으로 클라이언트로 푸시됨을 의미합니다. 동기적으로 메시지 수신하는 대체 방법을 읽을 수 있습니다.
Consume 메서드는 큐에 새 소비자를 생성하며, 새 메시지가 있을 때마다 이것이 소비자 클라이언트에게 자동으로 전달됩니다.
메서드에는 다음 인수가 있습니다:
메시지는 OnAMQPBasicDeliver 이벤트에서 전달됩니다.
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;
ConsumeEx 메서드를 호출하기만 하면 동기 호출을 수행할 수 있으며, 이 메서드는 Consumer가 생성되었으면 true를, 서버로부터 확인이 도착하지 않았으면 false를 반환합니다.
이 메서드는 기존 consumer queue를 Cancel하는 데 사용됩니다.
메서드에는 다음 인수가 있습니다:
AMQP.CancelConsume('channel_name', 'consumer_tag');
procedure OnAMQPBasicCancelConsume(Sender: TObject; const aChannel: string; const aConsumerTag);
begin
DoLog('#AMQP_basic_cancel_consume: ' + aChannel + ' ' + aConsumerTag);
end;
CancelConsumeEx 메서드를 호출하기만 하면 동기 호출을 수행할 수 있으며, 이 메서드는 Consumer가 취소되면 true를, 서버로부터 확인이 도착하지 않으면 false를 반환합니다.