Мы используем пакет NestJS CQRS в нашем приложении. Этот пакет позволяет нам создавать «саги», генерируя наблюдаемые RxJS, которые запускают различные фоновые задачи.
Однако мы заметили, что при запуске приложения на AWS Lambda функция завершается раньше, чем выполняются фоновые задачи.
Обрабатывается ли Observable в Лямбде иначе, чем Обещание?
@Saga()
aggregateCreated = (events$: Observable<any>): Observable<AggregateCommand> => {
return events$.pipe(
ofType(AggregateCreatedEvent),
map(async (event: AggregateCreatedEvent) => {
const result = this.queueService.sendMessage(
"http://XXXXXXX", { test: "MessageContent });
await Promise.all([result]);
return;
}),
flatMap(c => c)
);
}