0

我有一个用例,需要在 beantalk 队列中放置两种不同类型的作业,比如类型 a 和类型 b。每当有新作业到达时,我都会输入一个作业,但是对于 b 类型,我希望一次在队列中应该有一个 b 类型的作业(队列中不应该有两个或多个 b 类型的作业)。当我在队列中插入 B 类作业时,我首先要检查队列中是否已经有任何 B 类作业?如果是,则延迟该作业并且不要插入新作业。如果队列中没有 b 类作业,则插入一个新作业。那么是否可以在 beanstalk 队列中搜索工作?

4

1 回答 1

1

不,您不能搜索队列(Beanstalkd 称它们为“管”),只能找到一份工作(尽管您可以偷看,看看下一份工作会是什么)。

但是,由于您一次可以观看多个管子(并根据优先级和年龄从任何一个管子中获得工作),您可以创建一个只包含 B 类工作的管子。然后它变成一个简单的计数 - stats-tube [tube-name(eg 'type-b-jobs')]。如果那个管子里有工作,那就是典型的 b 工作,所以你可以继续做 a 类的工作。

于 2013-12-17T11:45:03.353 回答