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:
- Strumień wejściowy highWaterMark lepiej ustawić tę samą wartość z parametrem bufferSize, co pozwoli uniknąć operacji Buffer.concat().
- 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
| Buffer |
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>