队列 bull
‣
‣
‣
‣
nestjs: 可以用nestjs直接封装好的注入、注解方法
bull:自己new出来存放起来自己提供使用也没有问题
bull底层用redis,会维护一个长连接
数据结构
redis侧
左侧涂抹掉的事队列名称
右侧是数据
其他
队列是一种用于处理异步任务的重要工具,它允许您将任务添加到队列中,然后按照优先级或顺序依次执行。队列可以在高峰时段做到削峰的事情, 先接收任务, 然后依次处理. 而不会在同一时间因为访问量过大让服务器连接不上. 在官方文档里有队列一文档说的很详细了, 不过真按着来做, 也不一定能配置好. 有些细节, 文档里并没有说的明白. 以下算是那个文档的小补充吧
主要是用了redis的Pub/Sub功能
每次任务的消费都会从wait队列推入active队列,并且在任务执行期间会被加上锁。bull.js会通过lua脚本将多个redis操作合并成一个操作,保障了多个命令的原子执行,从而避免了竞态情况的发生。
redis4.04集群 proxy模式下Pub/Sub 偶发异常(redisson,bul)都会有影响,具体问题没有去看着分析
Loading...