TsgcHTTPServer › Olaylar › OnHTTP2BeforeAsyncRequest
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.
property OnHTTP2BeforeAsyncRequest: TsgcWSOnBeforeHttp2AsyncRequest;
// TsgcWSOnBeforeHttp2AsyncRequest = procedure(Sender: TObject; Connection: TsgcWSConnection; const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean) of object
—
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, her istek için sıraya alınmadan önce tetiklenir: karar vermek için ARequestInfo.Document'i inceleyin ve iş parçacığı havuzunda çalıştırmak için Async'i True (varsayılan) olarak veya bağlantı iş parçacığında çalıştırmak 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ünden kaçınır, bu da önerilen ince ayar stratejisidir.
procedure OnHTTP2BeforeAsyncRequest(Sender: TObject; Connection: TsgcWSConnection;
const ARequestInfo: TIdHTTPRequestInfo; var Async: Boolean);
begin
if ARequestInfo.Document = '/fast-request' then
Async := False;
end;