Dela via


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:

  1. HighWaterMark för indataström är bättre att ange samma värde med bufferSize-parametern, vilket undviker buffer.concat()-åtgärder.
  2. 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

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

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>