bull用法

1. bull 用的是 Redis 的队列服务, 所以要安装 redis 数据库, 安装方法看官网.

2. 安装 @nestjs/bull 和 bull

npm install --save @nestjs/bull bull

3. 根AppModule中导入BullModule

注意, 这个注册方法和官网上有点不一样. 这里直接用到 forRoot 与 官网的 registerQueue 不一样, 这个 registerQueue 我放到模块里面注册列表去了, 这里只做 redis 数据库的连接

4. 可以添加一个 QueueModule 做队列的事, 做统一管理

notion image
在 QueueModule 注册队名就行了, 数据库连接不用管.
BullModule.registerQueue({ name: QueueName.create }, { name: QueueName.flow })
name 是个 string, 我为了统一处理, 用了 emum 格式.

5. 消费者

providers 里, 在加入消费者, 也就是干活那个类 CreateProcessor, 一个队列指定一个消费者

6. 生产者 QueueService

注入到 Service 中, 然后调用就行了
@InjectQueue(QueueName.flow) private flowQueue: Queue
这个类中, 可以添加任务到队列, 查看队列状态, 重试等等.
当然还有事件监听者, 这个在这里就不细说了, 直接看官方文档吧, 都差不多. 更多的细节, 上面并没有说到, 可以直接看官方文档. 这里主要是和官方文档的不同之处吧, 另外, 这个 bull 其实可以注册到任一个模块去调用. 不过我觉得放在一直更好管理, 其它模块用到里, 直接引入调用.
Loading...
目录
文章列表
王小扬博客
产品
Think
Git
软件开发
计算机网络
CI
DB
设计
缓存
Docker
Node
操作系统
Java
大前端
Nestjs
其他
PHP