用途:在 NestJS 中集成 Bull(基于 Redis 的 Node.js 队列库),将耗时任务卸载到后台 worker 异步处理,避免阻塞请求。适用场景包括异步任务、长时间操作、异步发送邮件或通知、处理上传文件或媒体、任务重试与失败处理、多 worker 分发、优先级任务及延迟任务调度。
主要能力:通过 BullModule.forRoot 注册 Redis 连接、registerQueue 注册队列;用 @InjectQueue 注入 Queue 作为生产者,queue.add 添加任务并支持 delay、attempts、backoff、priority、removeOnComplete、removeOnFail、timeout、jobId、repeat(cron)、limiter 等选项;用 @Processor 与 @Process 编写消费者,支持默认处理器;通过 @OnQueueActive、@OnQueueCompleted、@OnQueueFailed、@OnQueueProgress 等装饰器监听队列事件;job.progress 跟踪进度;支持指数、固定及自定义 backoff 重试;队列管理含 pause、resume、getJobCounts、getWaiting、getActive、getCompleted、getFailed、getJob、remove、retry、clean、empty 及各项计数;支持可重复任务、限流与优先级队列;可用 ConfigService 异步配置与 Jest 测试(getQueueToken)。
使用方式:先 npm install @nestjs/bull bull,再 npm install @types/bull --save-dev;需运行 Redis,如 docker run -d -p 6379:6379 redis。之后按上述装饰器与注入方式编写生产者、消费者及管理逻辑。
限制:资料仅描述该技能的使用方式与示例,未提供定价、平台支持范围、性能指标或版本兼容性等信息,这些内容暂未提供。