Я пытаюсь использовать bull-arena в приложении NestJS.
export class AppModule {
configure(consumer: MiddlewareConsumer) {
const queues = this.createArenaQueues();
const arena = Arena({ queues }, { disableListen: true });
consumer.apply(arena).forRoutes('/system/queues');
}
createArenaQueues() {
return [
{
name: 'Notification_Emailer',
hostId: 'MyAwesomeQueues',
url: 'redis://localhost',
},
];
}
}
Это работает!
Но мне нужно использовать async / await для createArenaQueues()
, из-зазагрузка очередей из базы данных.
export class AppModule {
configure(consumer: MiddlewareConsumer) {
const queues = await this.createArenaQueues(); //await here
const arena = Arena({ queues }, { disableListen: true });
consumer.apply(arena).forRoutes('/system/queues');
}
async createArenaQueues() { // async here
return [
{
name: 'Notification_Emailer',
hostId: 'MyAwesomeQueues',
url: 'redis://localhost',
},
];
}
}
Не работает!
Итак, вопрос, как с этим справиться?
Было бы здорово запустить арену из "Системный контроллер, но я не мог придумать, как это сделать.
Кроме того, я попытался перевести арену на автономное промежуточное ПО, но не знаю, что мне следует сделать в итоге: вернуть что-то вродеres.send(arena)
или что?
Самый простой способ справиться с этим - async
настроить поддержку, но она не реализована.