5

I am a little confused as to whether priorities work at the job or queue/tube level. The reason I ask is that I am using a beanstalkd integration module in Drupal. This module enables one to define queues/tubes and assign a priority value to each queue/tube created.

What I am trying to work out is the following. Let's say I have two queues/tubes in Beanstalkd (queue A and queue B). If items assigned to Queue A have a higher priority than items in Queue B, does that mean items in Queue B will only be processed when Queue A is empty?

4

1 回答 1

2

优先级是每个工作,您可以在以下位置阅读更多信息:https ://github.com/kr/beanstalkd/blob/master/doc/protocol.txt

如果没有作业优先级,beantalkd 将作为 FIFO 队列运行。

关于工作优先级,需要了解三个确凿的事实:

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

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

您可以使用https://github.com/ptrofimov/beanstalk_console观看试管和作业

于 2014-04-17T10:15:12.533 回答