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:
- Der Eingabestream highWaterMark ist besser, einen gleichen Wert mit dem parameter bufferSize festzulegen, wodurch Buffer.concat()-Vorgänge vermieden werden.
- 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
Buffer |
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>
Azure SDK for JavaScript