0

我想遍历在 NestJs Bull 中注册的所有队列并对每个队列做一些事情。

例如我已经有了这个:

@Injectable()
export class BullUIProvider {
  constructor(@InjectQueue('backfill') private backfillQueue: Queue) {
    setQueues([new BullAdapter(backfillQueue)]);
  }
}

但我想做这样的事情:

@Injectable()
export class BullUIProvider {
  constructor(@Inject(queueProvider) private queues: QueueProvider) {
    setQueues(queues.map((queue) => new BullAdapter(queue)));
  }
}

似乎我只能使用队列名称一次进入队列,并且只能使用 @Inject 装饰器。有没有其他的排队方式?

4

1 回答 1

0

我这样做是为了做我想做的事情:

@Injectable()
export class BullService implements OnModuleInit {
  public queues: Queue[] = [];

  constructor(private readonly moduleRef: ModuleRef) {}

  onModuleInit(): any {
    this.queues = QUEUE_NAMES.map((name) =>
      this.moduleRef.get(getQueueToken(name), { strict: false }));
    setQueues(this.queues.map((queue) => new BullAdapter(queue)));
  }
}
于 2021-02-15T20:12:02.247 回答