【工作经验】怎么使用 better-queue 管理复杂的任务

队列,在数据结构中是一种线性表,其特性为必须从一端插入,然后从另一端删除数据。但笔者今天重点不是如何实现该数据结构,我们可以看一看如何借助队列管理复杂的任务。

队列在实际开发中应用的场景非常广泛。因为在一个复杂的系统中,总是会有一些非常耗时的处理。在这种时候开发者不能要求系统提供实时处理、实时响应的能力。这时候我们就可以通过队列来解决此类问题。

开发者可以不停地往队列塞入数据,并为其生成唯一值(进行跟踪),同时根据当前系统的处理能力不断的从队列取出数据进行业务处理,以此来减轻在同一时间内进行大量复杂业务处理,以便增强系统的处理能力。

服务端通常可以借助队列来进行异步处理、系统解耦、数据同步以及流量削峰。

使用方法
让我们开始看一看 better-queue 如何使用。

代码风格
import BetterQueue from “better-queue”;

// 创建队列并且提供任务处理的回调函数
// 当调用回调意味该数据已经从队列中删除
// 然后从队列中取出下一条数据继续处理
const q = new BetterQueue(function (input, cb) {
// 从队列中取出数据并进行处理…
const result = ‘xxxx’
try {
// 如果成功则调用回调并且返回结果
cb(null, result);
} catch (err) {
// 否则返回错误
cb(err)
}
})

q.push(1)
q.push({x: 1})
我们可以看到,该库的代码风格还是采用了 Node 早期版本的回调风格,如果在执行期间发生了错误,会把错误作为回调的第一个参数传递到回调函数中。类似于:

fs.readFile(filePath, (err, data) => {
if (err) {
console.log(err)
return
}
console.log(data)
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值