TsgcWebSocketHTTPServerEventos › OnHTTP2BeforeAsyncRequest

OnHTTP2BeforeAsyncRequest Evento

Se activa antes de que una solicitud HTTP/2 se ponga en cola, para que la aplicación pueda decidir si se ejecuta en el grupo de hilos o en el hilo de conexión.

Sintaxis

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

Valor Predeterminado

Observaciones

Cuando HTTP2Options.PoolOfThreads.Enabled es True, el servidor distribuye las solicitudes HTTP/2 entrantes en un grupo de trabajadores (HTTP2Options.Threads) para aprovechar el multiplexado de HTTP/2. OnHTTP2BeforeAsyncRequest se activa para cada solicitud antes de que se ponga en cola: inspeccione ARequestInfo.Document para decidir, y establezca Async en True (el valor predeterminado) para ejecutar en el grupo de subprocesos o en False para ejecutar en el subproceso de conexión. Enrutar las solicitudes cortas al subproceso de conexión evita la sobrecarga del grupo, al tiempo que mantiene las solicitudes lentas en subprocesos, lo que es la estrategia de ajuste fino recomendada.

Ejemplo


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

Volver a Eventos