Freigeben über


BufferScheduler class

Diese Klasse akzeptiert einen Node.js lesbaren Stream als Eingabe und liest Daten aus dem Stream in die interne Pufferstruktur, bis er maxBuffers erreicht. Jeder verfügbare Puffer versucht, outgoingHandler auszulösen. Die interne Pufferstruktur umfasst ein eingehendes Pufferarray und ein ausgehendes Pufferarray. Das eingehende Pufferarray enthält die "leeren" Puffer, die mit neuen eingehenden Daten gefüllt werden können. Das ausgehende Array enthält die gefüllten Puffer, die von outgoingHandler verarbeitet werden sollen. Jede oben genannte Puffergröße wird durch parameter bufferSize definiert.

NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING

<NUM_OF_ALL_BUFFERS = maxBuffers

TIPPS ZUR LEISTUNGSVERBESSERUNG:

  1. Der Eingabestream highWaterMark ist besser, einen gleichen Wert mit dem parameter bufferSize festzulegen, wodurch Buffer.concat()-Vorgänge vermieden werden.
  2. Parallelität sollte einen kleineren Wert als maxBuffers festlegen, was hilfreich ist, um die Möglichkeit zu verringern, wenn ein ausgehender Handler auf die Streamdaten wartet. in dieser Situation werden ausgehende Handler blockiert. Die ausgehende Warteschlange sollte nicht leer sein.

Konstruktoren

BufferScheduler(Readable, number, number, OutgoingHandler, number, undefined | string)

Erstellt eine Instanz von BufferScheduler.

Methoden

do()

Starten Sie den Scheduler, gibt einen Fehler zurück, wenn der Stream eines der outgoingHandlers einen Fehler zurückgibt.

Details zum Konstruktor

BufferScheduler(Readable, number, number, OutgoingHandler, number, undefined | string)

Erstellt eine Instanz von BufferScheduler.

new BufferScheduler(readable: Readable, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, parallelism: number, encoding?: undefined | string)

Parameter

readable

Readable

Ein Node.js lesbarer Stream

bufferSize

number

Puffergröße jedes verwalteten Puffers

maxBuffers

number

Wie viele Puffer können zugeordnet werden?

outgoingHandler
OutgoingHandler

Eine asynchrone Funktion, die ausgelöst wird, wenn ein Puffer vollständig mit Streamdaten gefüllt ist

parallelism

number

Parallelität der Ausführung von ausgehenden Handlern (>0)

encoding

undefined | string

Details zur Methode

do()

Starten Sie den Scheduler, gibt einen Fehler zurück, wenn der Stream eines der outgoingHandlers einen Fehler zurückgibt.

function do()

Gibt zurück

Promise<void>