TsgcWebSocketHTTPServerOlaylar › OnHTTP2BeforeAsyncRequest

OnHTTP2BeforeAsyncRequest Olay

Bir HTTP/2 isteği sıraya alınmadan önce tetiklenir, böylece uygulama bunun iş parçacığı havuzunda mı yoksa bağlantı iş parçacığında mı çalışacağını seçebilir.

Sözdizimi

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

Varsayılan Değer

Remarks

HTTP2Options.PoolOfThreads.Enabled True olduğunda, sunucu HTTP/2 çoğullamasından yararlanmak için gelen HTTP/2 isteklerini bir çalışan havuzunda (HTTP2Options.Threads) gönderir. OnHTTP2BeforeAsyncRequest, kuyruğa alınmadan önce her istek için tetiklenir: karar vermek için ARequestInfo.Document'i inceleyin ve iş parçacığı havuzunda çalışmak için Async'i True (varsayılan) veya bağlantı iş parçacığında çalışmak için False olarak ayarlayın. Kısa istekleri bağlantı iş parçacığına yönlendirmek, yavaş istekleri iş parçacıklı tutarken havuz ek yükünü önler; bu önerilen ince ayar stratejisidir.

Örnek


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

Olaylara Dön