BufferScheduler class
Den här klassen accepterar en Node.js läsbar ström som indata och fortsätter att läsa data från strömmen till den interna buffertstrukturen tills den når maxBuffers. Varje tillgänglig buffert försöker utlösa outgoingHandler.
Den interna buffertstrukturen innehåller en inkommande buffertmatris och en utgående buffertmatris. Den inkommande buffertmatrisen innehåller "tomma" buffertar som kan fyllas med nya inkommande data. Den utgående matrisen innehåller de fyllda buffertar som ska hanteras av outgoingHandler. Varje buffertstorlek ovan definieras av parameterbuffertStorlek.
NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING
NUM_OF_ALL_BUFFERS mindre än eller lika med maxBuffers
TIPS FÖR PRESTANDAFÖRBÄTTRING:
- HighWaterMark för indataström är bättre att ange samma värde med bufferSize-parametern, vilket undviker buffer.concat()-åtgärder.
- samtidighet bör ange ett mindre värde än maxBuffers, vilket är användbart för att minska risken när en utgående hanterare väntar på dataströmmar. I det här fallet blockeras utgående hanterare. Utgående kö ska inte vara tom.
Konstruktorer
Buffer |
Skapar en instans av BufferScheduler. |
Metoder
do() | Starta schemaläggaren, returnerar fel när strömmen av någon av utgåendeHandlers returnerar fel. |
Konstruktorinformation
BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)
Skapar en instans av BufferScheduler.
new BufferScheduler(readable: ReadableStream, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, concurrency: number, encoding?: BufferEncoding)
Parametrar
- readable
-
ReadableStream
En Node.js läsbar ström
- bufferSize
-
number
Buffertstorlek för varje underhållsbuffert
- maxBuffers
-
number
Hur många buffertar som kan allokeras
- outgoingHandler
- OutgoingHandler
En asynkron funktion som är schemalagd att utlösas när en buffert är helt fylld med dataström
- concurrency
-
number
Samtidighet vid körning av outgoingHandlers (>0)
- encoding
-
BufferEncoding
[Valfritt] Kodning av läsbar dataström när det är en strängström
Metodinformation
do()
Starta schemaläggaren, returnerar fel när strömmen av någon av utgåendeHandlers returnerar fel.
function do(): Promise<void>
Returer
Promise<void>