BufferScheduler class
Tato třída přijímá Node.js readable stream jako vstup a udržuje čtení dat z datového proudu do interní vyrovnávací struktury, dokud nedosáhne maxBuffers. Každá dostupná vyrovnávací paměť se pokusí aktivovat odchozí obslužnou rutinu.
Struktura interní vyrovnávací paměti obsahuje pole příchozí vyrovnávací paměti a pole odchozí vyrovnávací paměti. Pole příchozí vyrovnávací paměti obsahuje prázdné vyrovnávací paměti, které lze vyplnit novými příchozími daty. Odchozí pole obsahuje vyplněné vyrovnávací paměti, které se mají zpracovat pomocí odchozí obslužné rutiny. Každá výše uvedená velikost vyrovnávací paměti je definována vyrovnávací pamětí parametruSize.
NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING
NUM_OF_ALL_BUFFERS menší nebo rovno maxBuffers
TIPY KE ZLEPŠENÍ VÝKONU:
- Vstupní datový proud highWaterMark je lepší nastavit stejnou hodnotu s parametrem bufferSize, což zabrání operacím Buffer.concat().
- souběžnost by měla nastavit menší hodnotu než maxBuffers, což je užitečné ke snížení možnosti, kdy odchozí obslužná rutina čeká na data streamu. v této situaci jsou odchozí obslužné rutiny blokované. Odchozí fronta by neměla být prázdná.
Konstruktory
| Buffer |
Vytvoří instanci BufferScheduler. |
Metody
| do() | Spusťte plánovač, vrátí chybu, když datový proud některé odchozí obslužné rutiny vrátí chybu. |
Podrobnosti konstruktoru
BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)
Vytvoří instanci BufferScheduler.
new BufferScheduler(readable: ReadableStream, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, concurrency: number, encoding?: BufferEncoding)
Parametry
- readable
-
ReadableStream
Node.js čitelný datový proud
- bufferSize
-
number
Velikost vyrovnávací paměti každé udržované vyrovnávací paměti
- maxBuffers
-
number
Kolik vyrovnávacích pamětí je možné přidělit
- outgoingHandler
- OutgoingHandler
Asynchronní funkce naplánovaná tak, aby se aktivovala, když se plně naplní vyrovnávací paměť daty datového proudu.
- concurrency
-
number
Souběžnost spouštění odchozích obslužných rutin (>0)
- encoding
-
BufferEncoding
[Volitelné] Kódování čitelného datového proudu, pokud se jedná o řetězcový datový proud
Podrobnosti metody
do()
Spusťte plánovač, vrátí chybu, když datový proud některé odchozí obslužné rutiny vrátí chybu.
function do(): Promise<void>
Návraty
Promise<void>