优先级在Beanstalkd中的队列/管道中工作吗?

时间:2014-04-15 23:59:32

标签: drupal beanstalkd pheanstalk

关于优先级是在作业还是队列/管道级别工作,我有点困惑。我问的原因是我在Drupal中使用beanstalkd集成模块。该模块允许定义队列/管并为创建的每个队列/管分配优先级值。

我想要解决的是以下内容。让我们说我在Beanstalkd中有两个队列/管(队列A和队列B)。如果分配给队列A的项目的优先级高于队列B中的项目,这是否意味着队列B中的项目只会在队列A为空时处理?

1 个答案:

答案 0 :(得分:1)

优先级是每个职位,您可以在https://github.com/kr/beanstalkd/blob/master/doc/protocol.txt

了解更多相关信息

没有作业优先级,beanstalkd作为FIFO队列运行。

关于工作重点,有三个难以理解的事实:

  • 优先级较低的作业会在具有较高优先级的作业之前保留。
  • beanstalkd优先级是32位无符号整数(范围从0到2 ^ 32 - 1)。
  • beanstalkd使用2 ^ 31作为默认作业优先级(beanstalkd.DEFAULT_PRIORITY)(客户端可能会覆盖它,我看到默认值设置为1024)。

另请注意,在相同优先级内,作业仍以FIFO方式处理。因此,如果您有一个代理商可以监视多个管道,并且当您在这些管道上获得相同的优先级作业时,它们将以FIFO方式保留。

您可以使用https://github.com/ptrofimov/beanstalk_console

观看电子管和作业