TsgcWebSocketHTTPServerGebeurtenissen › OnHTTP2BeforeAsyncRequest

OnHTTP2BeforeAsyncRequest Gebeurtenis

Wordt geactiveerd voordat een HTTP/2-aanvraag in de wachtrij wordt geplaatst, zodat de toepassing kan kiezen of het in de threadpool of in de verbindingsthread wordt uitgevoerd.

Syntaxis

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

Standaardwaarde

Opmerkingen

Wanneer HTTP2Options.PoolOfThreads.Enabled True is, verdeelt de server binnenkomende HTTP/2-verzoeken over een worker pool (HTTP2Options.Threads) om te profiteren van HTTP/2-multiplexing. OnHTTP2BeforeAsyncRequest wordt geactiveerd voor elk verzoek voordat het in de wachtrij wordt geplaatst: inspecteer ARequestInfo.Document om te beslissen, en stel Async in op True (de standaard) om in de thread pool uit te voeren of op False om in de connection thread uit te voeren. Het routeren van korte verzoeken naar de connection thread vermijdt de pool-overhead terwijl trage verzoeken threaded blijven, wat de aanbevolen fine-tuning-strategie is.

Voorbeeld


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

Terug naar Events