interface IBatch {
    complete: FnControllers;
    error: FnControllers;
    events: {
        end: onEndCallback;
        progress: onProgressCallback;
    };
    fn: FnControllers;
    pending: FnControllers;
    status: "idle" | "running";
    summary: any;
    concurrency(n: number): void;
    createJob<Arguments>(description: string, controller: Function, arg?: Arguments): number;
    end(callback: onEndCallback): void;
    find(id: number): Controller<any>;
    on(event: "progress" | "end", callback: onEndCallback | onProgressCallback): void;
    progress(callback: onProgressCallback): void;
    push<Arguments>(controller: Function, arg?: Arguments): number;
    solver<ResultOnSuccess>(query: BatchFallbackQuery<ResultOnSuccess>): BatchFallbackSolver<ResultOnSuccess>;
    start(): Promise<any>;
    updateControllerStatus(controllerId: number, status: "done" | "pending" | "error"): boolean;
}

Implemented by

Properties

complete: FnControllers
events: {
    end: onEndCallback;
    progress: onProgressCallback;
}
pending: FnControllers
status: "idle" | "running"
summary: any

Methods

  • Définis le niveau de concurrence pour le traitement par lots. Il prend un seul paramètre « n » qui représente le nombre de tâches simultanées pouvant être exécutées en même temps. En définissant le niveau de simultanéité, vous pouvez contrôler le nombre de tâches traitées simultanément dans le travail par lots.

    Parameters

    • n: number

    Returns void

  • Définis une fonction qui vous permet de définir une fonction de rappel à exécuter lorsque le traitement par lots des contrôleurs est terminé. La méthode end prend un seul paramètre callback de type onEndCallback, qui est une fonction qui accepte une erreur et les résultats comme arguments.

    Parameters

    Returns void

  • Définit une fonction qui vous permet de définir une fonction de rappel à exécuter lorsqu'il y a une progression dans le traitement par lots des contrôleurs. Le type onProgressCallback représente une fonction qui accepte un tableau BatchProgressEvent comme argument. Ce tableau contient des informations sur la progression de chaque tâche par lots, y compris des détails tels que :

    • l'index
    • la valeur
    • les tâches en attente
    • le total des tâches
    • l'état d'avancement
    • le pourcentage d'achèvement
    • l'heure de début
    • l'heure de fin
    • la durée

    Parameters

    Returns void

  • Utilisée pour ajouter une nouvelle fonction de contrôleur à la file d'attente de traitement par lots.

    Type Parameters

    • Arguments extends Record<string, any> = {}

    Parameters

    Returns number

  • La méthode solver dans l'extrait de code définit une fonction qui permet d'ajouter un solveur en tant que requête qui ne s'exécutera que si l'élément observé a été exécuté (passage de l'attente à l'état terminé ou état d'erreur)

    Type Parameters

    • ResultOnSuccess = any

    Parameters

    • query: BatchFallbackQuery<ResultOnSuccess>

      batcher.push(( args ) => {

      let [ arg1 , arg2 ] = args;

      return batcher.solver({
      find : { id : "Controller ID" },
      args : args,
      on : {
      success : ( next , result ) => {

      // DO STUFF WITH RESULT

      next( myController( ... ) )

      },
      pending : ( wait ) => {

      // DO STUFF ON ERROR
      // NB : WAIT HAVE TO BE USED

      wait();

      }
      error : ( reject ) => {

      // DO STUFF ON ERROR

      reject();

      }
      }
      })

      } , args)

    Returns BatchFallbackSolver<ResultOnSuccess>

  • La méthode start() est responsable du lancement du traitement par lots des contrôleurs en file d'attente. Il renvoie une promesse qui se résout lorsque tous les contrôleurs ont été traités.

    Returns Promise<any>

  • Parameters

    • controllerId: number
    • status: "done" | "pending" | "error"

    Returns boolean