Partager via


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 :

  1. 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().
  2. 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

BufferScheduler(ReadableStream, number, number, OutgoingHandler, number, BufferEncoding)

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>