Delen via


BufferScheduler class

Deze klasse accepteert een Node.js leesbare stroom als invoer en blijft gegevens van de stroom lezen in de interne bufferstructuur totdat het maxBuffers bereikt. Elke beschikbare buffer probeert uitgaandeHandler te activeren.

De interne bufferstructuur bevat een binnenkomende buffermatrix en een uitgaande buffermatrix. De binnenkomende buffermatrix bevat de 'lege' buffers die kunnen worden gevuld met nieuwe binnenkomende gegevens. De uitgaande matrix bevat de gevulde buffers die moeten worden verwerkt door outgoingHandler. Elke bovenbuffergrootte wordt gedefinieerd door parameterbufferSize.

NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING

NUM_OF_ALL_BUFFERS kleiner dan of gelijk aan maxBuffers

TIPS VOOR PRESTATIEVERBETERING:

  1. Invoerstroom highWaterMark is beter om dezelfde waarde in te stellen met de parameter bufferSize, waardoor buffer.concat() bewerkingen worden vermeden.
  2. gelijktijdigheid moet een kleinere waarde instellen dan maxBuffers, wat handig is om de kans te verkleinen dat een uitgaande handler wacht op de streamgegevens. in deze situatie worden uitgaande handlers geblokkeerd. De uitgaande wachtrij mag niet leeg zijn.

Constructors

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

Hiermee maakt u een exemplaar van BufferScheduler.

Methoden

do()

Start de scheduler, retourneert een fout wanneer een stroom van een van de uitgaandehandlers een fout retourneert.

Constructordetails

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

Hiermee maakt u een exemplaar van BufferScheduler.

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

Parameters

readable

ReadableStream

Een Node.js leesbare stream

bufferSize

number

Buffergrootte van elke onderhouden buffer

maxBuffers

number

Hoeveel buffers kunnen worden toegewezen

outgoingHandler
OutgoingHandler

Een asynchrone functie die moet worden geactiveerd wanneer een buffer volledig is gevuld met stroomgegevens

concurrency

number

Gelijktijdigheid van het uitvoeren van uitgaandehandlers (>0)

encoding

BufferEncoding

[Optioneel] Codering van leesbare stream wanneer het een tekenreeksstream is

Methodedetails

do()

Start de scheduler, retourneert een fout wanneer een stroom van een van de uitgaandehandlers een fout retourneert.

function do(): Promise<void>

Retouren

Promise<void>