TsgcWebSocketHTTPServerÉvénements › OnHTTP2BeforeAsyncRequest

OnHTTP2BeforeAsyncRequest Événement

Déclenché avant qu'une requête HTTP/2 ne soit mise en file d'attente, afin que l'application puisse choisir si elle s'exécute dans le pool de threads ou dans le thread de connexion.

Syntaxe

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

Valeur par défaut

Remarques

Lorsque HTTP2Options.PoolOfThreads.Enabled est True, le serveur distribue les requêtes HTTP/2 entrantes sur un pool de workers (HTTP2Options.Threads) pour tirer parti du multiplexage HTTP/2. OnHTTP2BeforeAsyncRequest est levé pour chaque requête avant sa mise en file d'attente : inspectez ARequestInfo.Document pour décider, et définissez Async sur True (par défaut) pour s'exécuter dans le pool de threads ou sur False pour s'exécuter dans le thread de connexion. Acheminer les requêtes courtes vers le thread de connexion évite la surcharge du pool tout en maintenant les requêtes lentes sur des threads, ce qui est la stratégie d'ajustement recommandée.

Exemple


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

Retour aux événements