مشاركة عبر


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

تلميحات تحسين الأداء:

  1. تدفق الإدخال highWaterMark من الأفضل تعيين نفس القيمة باستخدام معلمة bufferSize، والتي ستتجنب عمليات Buffer.concat().
  2. يجب أن يعين التوازي قيمة أصغر من maxBuffers، وهو أمر مفيد لتقليل إمكانية عندما ينتظر معالج صادر بيانات الدفق. في هذه الحالة، يتم حظر المعالجات الصادرة. يجب ألا تكون قائمة الانتظار الصادرة فارغة.

المنشئون

BufferScheduler(Readable, number, number, OutgoingHandler, number, undefined | string)

إنشاء مثيل 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>