TsgcWebSocketClient이벤트 › OnSendBufferFull

OnSendBufferFull 이벤트

송신 메시지 큐가 QueueOptions.MaxQueueSize에 도달했을 때 오버플로 정책이 적용되기 전에 발생합니다.

구문

property OnSendBufferFull: TsgcWSSendBufferFullEvent;
// TsgcWSSendBufferFullEvent = procedure(Connection: TsgcWSConnection; const QueueSize: Integer; var DropMessage: Boolean) of object

기본값

설명

메시지 큐잉이 활성화되어 있고 QueueOptions.MaxQueueSize가 0보다 클 때만 발생합니다. 큐에 이미 MaxQueueSize개의 메시지가 들어 있는 상태에서 메시지를 큐에 추가하려고 할 때마다 현재 QueueSize와 함께 이 이벤트가 발생합니다. DropMessageTrue로 전달됩니다. 그대로 두면 QueueOptions.OverflowPolicy가 처리 방식을 결정하며(qopDropOldest는 가장 오래된 큐 메시지를 버리고, qopDropNewest는 새 메시지를 버리며, qopDisconnect는 메시지를 버리고 연결을 닫습니다), False로 설정하면 메시지를 그대로 받아들여 큐가 제한을 초과해 늘어나도록 허용합니다. 백프레셔를 감지하는 데 이 이벤트를 사용하십시오. 예를 들어 생산자를 일시 중지하거나 느린 소비자 상황을 로그로 남길 수 있습니다.

예제


procedure OnSendBufferFull(Connection: TsgcWSConnection; const QueueSize: Integer;
  var DropMessage: Boolean);
begin
  WriteLn('#send buffer full: ' + IntToStr(QueueSize) + ' messages queued');
end;

이벤트로 돌아가기