三个部分

生命周期

从生产者在队列实例上调用add方法的那一刻起,任务进入一个生命周期,该生命周期将处于不同的状态,直到完成或失败(尽管从技术上讲,失败的任务可以重试并获得新的生命周期)。

当任务添加到队列中时,它可处于等待状态延迟状态。等待状态其实是一个等待列表,所有列队在处理之前均处于等待状态,延迟状态意味着任务正在等待某些超时或处理失败的任务,延迟任务不会直接处理,而是在工作区间处于空闲状态时,将其放置在等待列表的开头并进行处理。

任务的下一个状态为"活动"状态。活动状态由一Redis的set集表示,是当前正在处理的任务,这时它们在process函数中运行。任务可以无限时间的处于处于活动状态,直到过程完成或引发异常,以便任务以"已完成"或"失败"状态结束。

Untitled

状态


      KEYS[1] 'delayed'
      KEYS[2] 'active'
      KEYS[3] 'wait'
      KEYS[4] 'priority'

      KEYS[5] 'paused'
      KEYS[6] 'meta-paused'

      ARGV[1]  queue.toKey('')
      ARGV[2]  delayed timestamp
      ARGV[3]  queue token

redis key名称

bull:{队列名称}:delayed
bull:{队列名称}:active
bull:{队列名称}:progress

其他资料

Welcome to Bull’s Guide

任务队列 | Midway