Aracılığıyla paylaş


BufferScheduler class

Bu sınıf Node.js Okunabilir bir akışı giriş olarak kabul eder ve maxBuffers'a ulaşana kadar akıştan iç arabellek yapısına veri okumaya devam eder. Kullanılabilir her arabellek, outgoingHandler'ı tetiklemeye çalışır.

İç arabellek yapısı bir gelen arabellek dizisi ve giden arabellek dizisi içerir. Gelen arabellek dizisi "boş" arabellekleri yeni gelen verilerle doldurulabilir. Giden dizisi, outgoingHandler tarafından işlenecek doldurulmuş arabellekleri içerir. Yukarıdaki her arabellek boyutu bufferSize parametresi tarafından tanımlanır.

NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING

NUM_OF_ALL_BUFFERS maxBuffers'tan küçük veya ona eşit

PERFORMANS GELIŞTIRME IPUÇLARı:

  1. Giriş akışı highWaterMark, Buffer.concat() işlemlerinden kaçınacak bufferSize parametresiyle aynı değeri ayarlamak daha iyidir.
  2. eşzamanlılık maxBuffers'tan daha küçük bir değer ayarlamalıdır ve bu da giden bir işleyicinin akış verilerini bekleme olasılığını azaltmaya yardımcı olur. bu durumda giden işleyiciler engellenir. Giden kuyruğu boş olmamalıdır.

Oluşturucular

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

BufferScheduler örneği oluşturur.

Yöntemler

do()

Zamanlayıcıyı başlatın; gidenhandlers akışlarından herhangi birinin akışı hata döndürdüğünde hata döndürür.

Oluşturucu Ayrıntıları

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

BufferScheduler örneği oluşturur.

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

Parametreler

readable

ReadableStream

Node.js Okunabilir akış

bufferSize

number

Bakımı yapılan her arabelleğinde arabellek boyutu

maxBuffers

number

Kaç arabellek ayrılabilir?

outgoingHandler
OutgoingHandler

Arabellek akış verileriyle tamamen doldurulduğunda tetiklenmek üzere zamanlanmış zaman uyumsuz bir işlev

concurrency

number

outgoingHandlers yürütme eşzamanlılığı (>0)

encoding

BufferEncoding

[İsteğe bağlı] Bir dize akışı olduğunda Okunabilir akışın kodlanması

Yöntem Ayrıntıları

do()

Zamanlayıcıyı başlatın; gidenhandlers akışlarından herhangi birinin akışı hata döndürdüğünde hata döndürür.

function do(): Promise<void>

Döndürülenler

Promise<void>