Compartir a través de


BufferScheduler class

Esta clase acepta un Node.js flujo legible como entrada y mantiene la lectura de datos de la secuencia en la estructura de búfer interna, hasta que alcanza maxBuffers. Cada búfer disponible intentará desencadenar outgoingHandler.

La estructura del búfer interno incluye una matriz de búfer entrante y una matriz de búfer de salida. La matriz de búfer entrante incluye los búferes "vacíos" se pueden rellenar con nuevos datos entrantes. La matriz saliente incluye los búferes rellenados que se van a controlar mediante outgoingHandler. Cada tamaño de búfer anterior se define mediante bufferSize de parámetros.

NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING

NUM_OF_ALL_BUFFERS menor o igual que maxBuffers

SUGERENCIAS PARA MEJORAR EL RENDIMIENTO:

  1. HighWaterMark de flujo de entrada es mejor establecer un mismo valor con el parámetro bufferSize, lo que evitará las operaciones Buffer.concat().
  2. La simultaneidad debe establecer un valor menor que maxBuffers, lo que resulta útil para reducir la posibilidad de que un controlador saliente espere los datos de transmisión. en esta situación, se bloquean los controladores salientes. La cola saliente no debe estar vacía.

Constructores

BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)

Crea una instancia de BufferScheduler.

Métodos

do()

Inicie el programador y devolverá un error cuando la secuencia de cualquiera de los elementos outgoingHandlers devuelva un error.

Detalles del constructor

BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)

Crea una instancia de BufferScheduler.

new BufferScheduler(readable: ReadableStream, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, concurrency: number, encoding?: BufferEncoding)

Parámetros

readable

ReadableStream

Secuencia legible de Node.js

bufferSize

number

Tamaño del búfer de cada búfer mantenido

maxBuffers

number

Número de búferes que se pueden asignar

outgoingHandler
OutgoingHandler

Una función asincrónica programada para desencadenarse cuando un búfer está completamente lleno de datos de flujo

concurrency

number

Simultaneidad de la ejecución de salienteHandlers (>0)

encoding

BufferEncoding

[Opcional] Codificación de flujo legible cuando se trata de un flujo de cadena

Detalles del método

do()

Inicie el programador y devolverá un error cuando la secuencia de cualquiera de los elementos outgoingHandlers devuelva un error.

function do(): Promise<void>

Devoluciones

Promise<void>