Udostępnij przez


BufferScheduler class

Ta klasa akceptuje strumień z możliwością odczytu Node.js jako dane wejściowe i odczytuje dane ze strumienia do wewnętrznej struktury buforu, dopóki nie osiągnie wartości maxBuffers. Każdy dostępny bufor spróbuje wyzwolić wychodzącą procedurę obsługi.

Wewnętrzna struktura buforu zawiera tablicę buforu przychodzącego i macierz buforu wychodzącego. Tablica przychodzących zawiera "puste" mogą być wypełnione nowymi danymi przychodzącymi. Tablica wychodząca zawiera wypełnione, które mają być obsługiwane przez program outgoingHandler. Każdy powyższy rozmiar buforu jest definiowany przez parametr bufferSize.

NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING

NUM_OF_ALL_BUFFERS mniejsza lub równa maxBuffers

PORADY DOTYCZĄCE POPRAWY WYDAJNOŚCI:

  1. Strumień wejściowy highWaterMark lepiej ustawić tę samą wartość z parametrem bufferSize, co pozwoli uniknąć operacji Buffer.concat().
  2. współbieżność powinna ustawiać mniejszą wartość niż maxBuffers, co jest przydatne w celu zmniejszenia możliwości, gdy wychodząca procedura obsługi czeka na dane strumienia. w takiej sytuacji programy obsługi wychodzącej są blokowane. Kolejka wychodząca nie powinna być pusta.

Konstruktory

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

Tworzy wystąpienie bufferScheduler.

Metody

do()

Uruchomienie harmonogramu spowoduje zwrócenie błędu, gdy strumień któregokolwiek z wychodzących procedur obsługi zwraca błąd.

Szczegóły konstruktora

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

Tworzy wystąpienie bufferScheduler.

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

Parametry

readable

ReadableStream

Strumień z możliwością odczytu Node.js

bufferSize

number

Rozmiar buforu dla każdego obsługiwanego buforu

maxBuffers

number

Ile można przydzielić

outgoingHandler
OutgoingHandler

Funkcja asynchronizowana zaplanowana do wyzwolenia, gdy bufor w pełni wypełniony danymi strumienia

concurrency

number

Współbieżność wykonywania wychodzących procedur obsługi (>0)

encoding

BufferEncoding

[Opcjonalnie] Kodowanie strumienia do odczytu, gdy jest to strumień ciągów znaków

Szczegóły metody

do()

Uruchomienie harmonogramu spowoduje zwrócenie błędu, gdy strumień któregokolwiek z wychodzących procedur obsługi zwraca błąd.

function do(): Promise<void>

Zwraca

Promise<void>