TsgcWebSocketHTTPServerZdarzenia › OnHTTP2BeforeAsyncRequest

OnHTTP2BeforeAsyncRequest Zdarzenie

Wywoływane przed umieszczeniem żądania HTTP/2 w kolejce, umożliwiając aplikacji wybór, czy zostanie ono wykonane w puli wątków, czy w wątku połączenia.

Składnia

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

Wartość domyślna

Uwagi

Gdy właściwość HTTP2Options.PoolOfThreads.Enabled ma wartość True, serwer przekazuje przychodzące żądania HTTP/2 do puli wątków roboczych (HTTP2Options.Threads), aby wykorzystać multipleksowanie HTTP/2. Zdarzenie OnHTTP2BeforeAsyncRequest jest wywoływane dla każdego żądania przed umieszczeniem go w kolejce: należy sprawdzić ARequestInfo.Document w celu podjęcia decyzji i ustawić Async na True (domyślnie), aby uruchomić je w puli wątków, lub na False, aby uruchomić je w wątku połączenia. Kierowanie krótkich żądań do wątku połączenia zmniejsza narzut puli, zachowując wątkowość wolnych żądań — jest to zalecana strategia dostrajania.

Przykład


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

Powrót do Zdarzeń