Passer au contenu principal
Header
Les files d’attente facilitent les opérations asynchrones. Elles peuvent être utilisées pour effectuer des tâches de fond telles que l’envoi d’un e-mail de bienvenue lors de l’enregistrement. Chaque cas d’utilisation aura sa propre classe de file d’attente étendue à partir de MessageQueueServiceBase. Actuellement, nous ne supportons que bull-mqbull-mq comme pilote de file d’attente.

Étapes pour créer et utiliser une nouvelle file d’attente

  1. Ajoutez un nom de file d’attente pour votre nouvelle file sous l’énumération MESSAGE_QUEUES.
  2. Fournissez l’implémentation de la fabrique de la file d’attente avec le nom de la file comme dépendance.
  3. Injectez la file d’attente que vous avez créée dans le module/service requis en utilisant le nom de la file comme dépendance.
  4. Ajouter une classe de travailleur avec injection basée sur un jeton comme le producteur.

Exemple d’utilisation

class Resolver {
  constructor(@Inject(MESSAGE_QUEUES.custom) private queue: MessageQueueService) {}

  async onSomeAction() {
    //business logic
    await this.queue.add(someData);
  }
}

//async worker
class CustomWorker {
  constructor(@Inject(MESSAGE_QUEUES.custom) private queue: MessageQueueService) {
    this.initWorker();
  }

  async initWorker() {
    await this.queue.work(async ({ id, data }) => {
      //worker logic
    });
  }
}