用户登录

队列或者队列任务的状态发生变化的时候,会触发一些事件, 我们可以在应用里监听这些事件,然后做出反应。这些监听器要放在任务消费者类里面,也就是用 Processor 装饰的类里面。

比如在这个 app.processor.ts 文件里定义的这个类里面,可以用监听几个事件,先监听一下任务活动事件,也就是 active 事件。可以用 @OnQueueActive 这个装饰器装饰一个方法,方法的名字是 onActive,方法接收一个 job 参数,类型是 Job。

在这个方法里面,我们在控制台上输出一行文字,任务活动:正在处理任务,然后输出任务的名字,还有任务的 id。

下面再监听一下任务处理完成的事情,用 @OnQueueCompleted 这个装饰器装饰一个方法,方法的名字是 onCompleted,接收一个 job 参数,还有一个 result 参数,类型是 any。

在方法里面,可以在控制台上输出 任务完成,后面加上任务的名字,任务的 id ,再输出 result,也就是任务的处理结果。

这个结果的值,是在处理任务的时候设置的,比如在上面这个 processResizeImage 这个方法里面,再添加一个 done ,它的类型是 DoneCallback。

然后在这个方法里面,执行一下 done 这个回调,第一个参数是错误,第二个参数是处理结果。如果没有错误,就把它设置成 null,再把第二个参数的值设置成 成功 ~~

测试

在 http 客户端可以测试一下,请求一下 images 这个接口,会在队列里添加一个任务。 然后观察一下控制台,你会发现,这里输出了 任务活动,还有任务完成。因为我们在应用里监听了 app 这个队列里的任务相关的两个事件。做的事情就是在控制台输出这两行文字。

队列任务事件监听器(Event listeners)《 Nest.js 服务端应用:任务队列 》

统计

13074
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点