Sdílet prostřednictvím


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:

  1. Vstupní datový proud highWaterMark je lepší nastavit stejnou hodnotu s parametrem bufferSize, což zabrání operacím Buffer.concat().
  2. 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

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

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>