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:
- Invoerstroom highWaterMark is beter om dezelfde waarde in te stellen met de parameter bufferSize, waardoor buffer.concat() bewerkingen worden vermeden.
- 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
| Buffer |
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>