SuperAPI AI 工具集

bullmq

智能体与模型

查看项目

更新于 10-16 01:15

技能介绍

用途:BullMQ 是基于 Redis 的 Node.js 分布式任务与消息队列,适合需要后台任务处理、定时任务、任务编排与限流的场景。本技能强调其训练数据可能不可靠、API 会随版本变化,因此在编写代码前应先用 WebFetch 读取在线文档:WebFetch("https://docs.bullmq.io/llms.txt"),不要臆测 API 是否存在,需对照当前文档核实。

主要能力:Flow Producers 以父子任务依赖建模,父任务在所有子任务完成后才运行;Sandboxed Processors 可在隔离子进程中运行处理器(processor: './worker.js');Job Schedulers 提供内置重复任务调度,支持 cron 与 interval;全局限流通过 Worker 构造器的 limiter 选项实现,例如 { limiter: { max: 10, duration: 1000 } };内置指标可追踪处理/失败计数并提供 Prometheus 兼容指标。

版本与用法要点:v2 移除了 QueueScheduler(停滞检测移入 Worker);v5.16+ 弃用 queue.add() 的 repeat 选项,改用 queue.upsertJobScheduler() 以免重启后产生重复调度条目。

最佳实践与限制:Queue、Worker、QueueEvents 各自持有 Redis 连接,关闭时应对三者都调用 .close(),否则会泄漏连接并阻塞进程退出;跨进程监听事件应使用 QueueEvents,因为 Worker 只在本进程内发事件;默认完成任务与失败任务会在 Redis 中累积,应配置 removeOnComplete 与 removeOnFail(如 { count: 1000 })避免内存无限增长;不要让多个 BullMQ 实例共享同一个 IORedis 连接,因 BullMQ 使用阻塞式 Redis 命令,需要独立连接,应传入连接配置对象而非共享实例。其余细节以官方文档为准。