BufferScheduler class
تقبل هذه الفئة دفق Node.js قابل للقراءة كإدخل، وتحتفظ بقراءة البيانات من الدفق إلى بنية المخزن المؤقت الداخلي، حتى تصل إلى maxBuffers. سيحاول كل مخزن مؤقت متوفر تشغيل outgoingHandler. تتضمن بنية المخزن المؤقت الداخلي صفيف مخزن مؤقت وارد، وصفيف مخزن مؤقت صادر. يتضمن صفيف المخزن المؤقت الوارد المخازن المؤقتة "الفارغة" التي يمكن تعبئتها بالبيانات الواردة الجديدة. يتضمن الصفيف الصادر المخازن المؤقتة التي تمت تعبئتها ليتم معالجتها بواسطة outgoingHandler. يتم تعريف كل حجم مخزن مؤقت أعلاه بواسطة حجم المخزن المؤقت للمعلمة.
NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING
NUM_OF_ALL_BUFFERS <= maxBuffers
تلميحات تحسين الأداء:
- تدفق الإدخال highWaterMark من الأفضل تعيين نفس القيمة باستخدام معلمة bufferSize، والتي ستتجنب عمليات Buffer.concat().
- يجب أن يعين التوازي قيمة أصغر من maxBuffers، وهو أمر مفيد لتقليل إمكانية عندما ينتظر معالج صادر بيانات الدفق. في هذه الحالة، يتم حظر المعالجات الصادرة. يجب ألا تكون قائمة الانتظار الصادرة فارغة.
المنشئون
| Buffer |
إنشاء مثيل BufferScheduler. |
الأساليب
| do() | بدء تشغيل المجدول، سيتم إرجاع الخطأ عند دفق أي من أخطاء إرجاع outgoingHandlers. |
تفاصيل المنشئ
BufferScheduler(Readable, number, number, OutgoingHandler, number, undefined | string)
إنشاء مثيل BufferScheduler.
new BufferScheduler(readable: Readable, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, parallelism: number, encoding?: undefined | string)
المعلمات
- readable
-
Readable
دفق Node.js قابل للقراءة
- bufferSize
-
number
حجم المخزن المؤقت لكل مخزن مؤقت تم الاحتفاظ به
- maxBuffers
-
number
عدد المخازن المؤقتة التي يمكن تخصيصها
- outgoingHandler
- OutgoingHandler
دالة غير متزامنة مجدولة ليتم تشغيلها عندما يكون المخزن المؤقت ممتلئا بالكامل ببيانات الدفق
- parallelism
-
number
تزامن تنفيذ outgoingHandlers (>0)
- encoding
-
undefined | string
تفاصيل الأسلوب
do()
بدء تشغيل المجدول، سيتم إرجاع الخطأ عند دفق أي من أخطاء إرجاع outgoingHandlers.
function do()
المرتجعات
Promise<void>