BufferScheduler class
Kelas ini menerima aliran Node.js Dapat Dibaca sebagai input, dan terus membaca data dari aliran ke struktur buffer internal, sampai mencapai maxBuffers. Setiap buffer yang tersedia akan mencoba memicu outgoingHandler.
Struktur buffer internal mencakup array buffer masuk, dan array buffer keluar. Array buffer masuk mencakup buffer "kosong" dapat diisi dengan data masuk baru. Array keluar mencakup buffer yang diisi untuk ditangani oleh outgoingHandler. Setiap ukuran buffer di atas ditentukan oleh bufferSize parameter.
NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING
NUM_OF_ALL_BUFFERS lebih kecil dari atau sama dengan maxBuffers
TIPS PENINGKATAN PERFORMA:
- Input stream highWaterMark lebih baik mengatur nilai yang sama dengan parameter bufferSize, yang akan menghindari operasi Buffer.concat().
- konkurensi harus menetapkan nilai yang lebih kecil daripada maxBuffers, yang berguna untuk mengurangi kemungkinan saat penangan keluar menunggu data aliran. dalam situasi ini, handler keluar diblokir. Antrean keluar tidak boleh kosong.
Konstruktor
| Buffer |
Membuat instans BufferScheduler. |
Metode
| do() | Mulai penjadwal, akan mengembalikan kesalahan saat aliran salah satu outgoingHandlers mengembalikan kesalahan. |
Detail Konstruktor
BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)
Membuat instans BufferScheduler.
new BufferScheduler(readable: ReadableStream, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, concurrency: number, encoding?: BufferEncoding)
Parameter
- readable
-
ReadableStream
Aliran yang dapat dibaca Node.js
- bufferSize
-
number
Ukuran buffer dari setiap buffer yang dipertahankan
- maxBuffers
-
number
Berapa banyak buffer yang dapat dialokasikan
- outgoingHandler
- OutgoingHandler
Fungsi asinkron yang dijadwalkan untuk dipicu ketika buffer penuh diisi dengan data aliran
- concurrency
-
number
Konkurensi eksekusi outgoingHandlers (>0)
- encoding
-
BufferEncoding
[Opsional] Pengkodean aliran yang dapat dibaca saat merupakan aliran string
Detail Metode
do()
Mulai penjadwal, akan mengembalikan kesalahan saat aliran salah satu outgoingHandlers mengembalikan kesalahan.
function do(): Promise<void>
Mengembalikan
Promise<void>