TsgcWebSocketHTTPServerEventos › OnHTTP2BeforeAsyncRequest

OnHTTP2BeforeAsyncRequest Evento

Dispara antes de uma requisição HTTP/2 ser enfileirada para que a aplicação possa escolher se ela é executada no pool de threads ou na thread da conexão.

Sintaxe

property OnHTTP2BeforeAsyncRequest: TsgcWSOnBeforeHttp2AsyncRequest;
// TsgcWSOnBeforeHttp2AsyncRequest = procedure(Sender: TObject; Connection: TsgcWSConnection; const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean) of object

Valor Padrão

Observações

Quando HTTP2Options.PoolOfThreads.Enabled é True, o servidor despacha as requisições HTTP/2 recebidas em um worker pool (HTTP2Options.Threads) para aproveitar a multiplexação do HTTP/2. OnHTTP2BeforeAsyncRequest é gerado para cada requisição antes de ser enfileirada: inspecione ARequestInfo.Document para decidir, e defina Async como True (o padrão) para rodar no thread pool ou como False para rodar na thread da conexão. Rotear requisições curtas para a thread da conexão evita a sobrecarga do pool mantendo as requisições lentas em threads, que é a estratégia de ajuste fino recomendada.

Exemplo


procedure OnHTTP2BeforeAsyncRequest(Sender: TObject; Connection: TsgcWSConnection;
  const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean);
begin
  if ARequestInfo.Document = '/fast-request' then
    Async := False;
end;

Voltar para Eventos