BufferScheduler class
このクラスは、Node.js 読み取り可能ストリームを入力として受け取り、maxBuffers に到達するまでストリームから内部バッファー構造にデータを読み取り続けます。 使用可能なすべてのバッファーが outgoingHandler をトリガーしようとします。
内部バッファー構造には、受信バッファー配列と出力バッファー配列が含まれます。 受信バッファー配列には、新しい受信データを格納できる "空" バッファーが含まれています。 送信配列には、outgoingHandler によって処理される塗りつぶされたバッファーが含まれます。 上記のすべてのバッファー サイズは、パラメーター bufferSize によって定義されます。
NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING
NUM_OF_ALL_BUFFERS maxBuffers 以下
パフォーマンス向上のヒント:
- 入力ストリーム highWaterMark は、bufferSize パラメーターを使用して同じ値を設定することをお勧めします。これは、Buffer.concat() 操作を回避します。
- concurrency は maxBuffers よりも小さい値を設定する必要があるため、送信ハンドラーがストリーム データを待機する可能性を減らすのに役立ちます。 この状況では、送信ハンドラーがブロックされます。 送信キューを空にしないでください。
コンストラクター
| Buffer |
BufferScheduler のインスタンスを作成します。 |
メソッド
| do() | スケジューラを起動すると、いずれかの outgoingHandlers のストリームからエラーが返されたときにエラーが返されます。 |
コンストラクターの詳細
BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)
BufferScheduler のインスタンスを作成します。
new BufferScheduler(readable: ReadableStream, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, concurrency: number, encoding?: BufferEncoding)
パラメーター
- readable
-
ReadableStream
Node.js 読み取り可能ストリーム
- bufferSize
-
number
維持されているすべてのバッファーのバッファー サイズ
- maxBuffers
-
number
割り当て可能なバッファーの数
- outgoingHandler
- OutgoingHandler
バッファーにストリーム データが完全に格納されたときにトリガーされるようにスケジュールされた非同期関数
- concurrency
-
number
outgoingHandlers の実行のコンカレンシー (>0)
- encoding
-
BufferEncoding
[オプション]文字列ストリームの場合の読み取り可能なストリームのエンコード
メソッドの詳細
do()
スケジューラを起動すると、いずれかの outgoingHandlers のストリームからエラーが返されたときにエラーが返されます。
function do(): Promise<void>
戻り値
Promise<void>