1
votes

NestJS - Impossible de résoudre la file d'attente?

Je suis doc pour commencer à utiliser la file d'attente. J'ai installé les dépendances @ nestjs / bull , bull , @ types / bull . Et voici mon app.module.ts :

Nest can't resolve dependencies of the EventService
Please make sure that the argument BullQueue_create_checkin at index [0] is available in the EventModule context.

J'ai importé BullModule dans le module racine. Et voici mon event.service.ts:

@Injectable()
export class EventService {

    constructor(
        @InjectQueue('create_checkin') private readonly createCheckinQueue: Queue,
    ) {
    }
}

Et quand je démarre le serveur, j'ai le message d'erreur suivant:

XXX

Je ne sais pas quelle étape j'ai mal fait. Quelqu'un peut m'aider?


1 commentaires

Où avez-vous fourni EventService? Pouvez-vous fournir plus de votre code?


4 Réponses :


0
votes

Assurez-vous que vous placez EventService sous le tableau des fournisseurs dans EventModule.

@Module({
     providers: [EventService],
     controllers :[],
     imports: [YOUR_MODULES],
     exports: [EventService]
})
export class EventModule {}


0 commentaires

0
votes

Essayez d'importer BullModule directement dans Event Module - J'ai eu le même problème et le faire de cette façon le faire fonctionner.

@Module({
  imports: [
    BullModule.registerQueueAsync({
      name: 'csv',
      useFactory: async (config: ConfigService) => ({
        redis: config.get('redis'),
      }),
      inject: [ConfigService],
    }),
  ],
  providers: [
    CsvService
  ],
  exports: [CsvService],
})
export class CsvModule {}

Je sais que c'est une méthode asynchrone, mais vous devriez peut-être essayer.

/ p>


0 commentaires

1
votes

Vous devez importer le module bull dans le module que vous essayez de configurer en file d'attente. Vous pouvez également vous référer à https://medium.com/@shikhar01. cse14 / bull-queues-in-nestjs-306c51cb0ec2


2 commentaires

la même chose que j'essayais de montrer dans le code ci-dessus :)


Merci, l'article semble bon, mais il n'y a aucune référence sur la façon de créer le ConfigModule ou ConfigService, ce serait bien si l'auteur avait fourni un exemple de référentiel GitHub.



0
votes

A eu un problème similaire, dans mon cas, il suffisait d'ajouter le BullModule au tableau exports pour réussir à exécuter l'ensemble du projet. Comme ceci:

@InjectQueue('print') private queue: Queue<PrintJob>

Ensuite, dans mon service, j'ai pu injecter la file d'attente:

@Module({
  imports: [
    BullModule.registerQueue({ ... }),
    ...
  ],
  ...
  exports: [
    BullModule,  // <— this is important!
    ...
  ]
})


0 commentaires