BufferScheduler class
Cette classe accepte un Node.js flux lisible comme entrée et continue à lire les données du flux dans la structure de mémoire tampon interne jusqu’à ce qu’elle atteigne maxBuffers. Chaque mémoire tampon disponible tente de déclencher le gestionnaire sortant.
La structure de mémoire tampon interne inclut un tableau de mémoires tampons entrantes et un tableau de mémoires tampons sortantes. Le tableau de mémoires tampons entrantes inclut les mémoires tampons « vides » peuvent être remplies de nouvelles données entrantes. Le tableau sortant inclut les mémoires tampons remplies à gérer par le gestionnaire sortant. Chaque taille de mémoire tampon ci-dessus est définie par bufferSize de paramètres.
NUM_OF_ALL_BUFFERS = BUFFERS_IN_INCOMING + BUFFERS_IN_OUTGOING + BUFFERS_UNDER_HANDLING
NUM_OF_ALL_BUFFERS inférieur ou égal à maxBuffers
CONSEILS D’AMÉLIORATION DES PERFORMANCES :
- Le flux d’entrée highWaterMark est préférable à définir une même valeur avec le paramètre bufferSize, ce qui évite les opérations Buffer.concat().
- concurrency doit définir une valeur inférieure à maxBuffers, ce qui est utile pour réduire la possibilité qu’un gestionnaire sortant attende les données de flux. dans ce cas, les gestionnaires sortants sont bloqués. La file d’attente sortante ne doit pas être vide.
Constructeurs
| Buffer |
Crée une instance de BufferScheduler. |
Méthodes
| do() | Démarrez le planificateur, retourne une erreur lorsque le flux de l’un des gestionnaires sortants retourne une erreur. |
Détails du constructeur
BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)
Crée une instance de BufferScheduler.
new BufferScheduler(readable: ReadableStream, bufferSize: number, maxBuffers: number, outgoingHandler: OutgoingHandler, concurrency: number, encoding?: BufferEncoding)
Paramètres
- readable
-
ReadableStream
Flux lisible Node.js
- bufferSize
-
number
Taille de la mémoire tampon de chaque mémoire tampon gérée
- maxBuffers
-
number
Nombre de mémoires tampons pouvant être allouées
- outgoingHandler
- OutgoingHandler
Fonction asynchrone planifiée à déclencher lorsqu’une mémoire tampon entièrement remplie de données de flux
- concurrency
-
number
Concurrence de l’exécution de gestionnaires sortants (>0)
- encoding
-
BufferEncoding
[Facultatif] Encodage d’un flux lisible lorsqu’il s’agit d’un flux de chaînes
Détails de la méthode
do()
Démarrez le planificateur, retourne une erreur lorsque le flux de l’un des gestionnaires sortants retourne une erreur.
function do(): Promise<void>
Retours
Promise<void>