bull 通过 process 方法定义 job 的处理器,并且开始执行 job
name / concurrency 是可选参数,handler 是必选参数
默认的 name 是 Job.DEFAULT_JOB_NAME,concurrency 是 1
虽然 process 方法返回 Promise<any[]>,但是一般不会等待它
Queue.prototype.process = function(name, concurrency, handler) {
switch (arguments.length) {
case 1:
handler = name;
concurrency = 1;
name = Job.DEFAULT_JOB_NAME;
break;
case 2: // (string, function) or (string, string) or (number, function) or (number, string)
handler = concurrency;
if (typeof name === 'string') {
concurrency = 1;
} else {
concurrency = name;
name = Job.DEFAULT_JOB_NAME;
}
break;
}
this.setHandler(name, handler);
return this._initProces
本文详细介绍了基于Redis的Bull任务队列如何处理Job,包括处理器的定义、初始化、开始执行、循环处理和Job的处理过程。重点讨论了`process`方法、设置处理器、初始化、启动并发处理以及处理Job的逻辑,特别是对Job锁的管理、速率限制和超时处理的细节。
订阅专栏 解锁全文
189

被折叠的 条评论
为什么被折叠?



