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ı:
- Giriş akışı highWaterMark, Buffer.concat() işlemlerinden kaçınacak bufferSize parametresiyle aynı değeri ayarlamak daha iyidir.
- 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
| Buffer |
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>