Javascript 当作业失败时,如何从队列返回响应?

Javascript 当作业失败时,如何从队列返回响应?,javascript,typescript,queue,job-queue,Javascript,Typescript,Queue,Job Queue,我使用BullQueue创建一个队列作业系统来生成我的报告系统。但当我的工作失败时,我对前台的回复有问题 我的代码: 处理机 @Process('generate_report') async generateReport(job: Job<{options: OptionsDto, reportType: Type}>): Promise<any> { try { switch (job.data.reportT

我使用
BullQueue
创建一个队列作业系统来生成我的报告系统。但当我的工作失败时,我对前台的回复有问题

我的代码:

处理机

    @Process('generate_report')
    async generateReport(job: Job<{options: OptionsDto,  reportType: Type}>): Promise<any> {
        try {
            switch (job.data.reportType) {
                case NORMAL:
                    return this.generateNormalReport(job.data.options);
                case EXTERNAL:
                    return this.generateExternalReport(job.data.options);
                default:
                    break;
            }
        } catch (error) {
            this.logger.error(`[Queue] Failed to generate report.`)
        }
    }


    @OnQueueFailed()
    onError(job: Job<any>, error: BadRequestException): void {
        this.logger.error(`[Queue] Failed job ${job.id}`, error.stack) // I want to return this response with 500 code when job is failed
    }
@进程('generate_report')
异步generateReport(作业:作业):承诺{
试一试{
开关(job.data.reportType){
正常情况:
返回此.generateNormalReport(job.data.options);
外部案例:
返回此.generateExternalReport(job.data.options);
违约:
打破
}
}捕获(错误){
this.logger.error(`[Queue]无法生成报告。`)
}
}
@OnQueueFailed()
onError(作业:作业,错误:BadRequestException):无效{
this.logger.error(`[Queue]Failed job${job.id}`,error.stack)//我想在作业失败时返回此响应,返回500代码
}
服务


    async addReportGenerationToQueue(options: OptionsDto, reportType: Type): Promise<void> {
        try {
            await this.reportQueue.add('generate_report', {
                options,
                reportType
            })
            this.logger.log(`[Queue] Report was added to queue.`)
        } catch (error) {
            this.logger.error(`[Queue] The report was not added to the queue.`);
        }
    }

异步addReportGenerationToQueue(选项:OptionsDto,reportType:Type):承诺{
试一试{
等待此.reportQueue.add('generate_report'{
选项,
报表类型
})
此.logger.log(`[Queue]报告已添加到队列。`)
}捕获(错误){
this.logger.error(`[Queue]报告未添加到队列。`);
}
}
有人能告诉我当队列中的作业失败时,如何返回带有错误代码的REST吗