【问题标题】:Amazon SQS Priority QueueAmazon SQS 优先队列
【发布时间】:2014-10-18 20:19:37
【问题描述】:

是否可以使用 Amazon 简单排队服务创建优先级队列?

最初我找不到关于该主题的任何内容,这就是我创建两个队列的原因。一个通用队列和一个优先级队列。我正在根据我定义的规则将消息排入此队列,但在出列消息时会出现混乱。

如何对队列进行长轮询,以使我的队列组合表现得像一个优先级队列?

【问题讨论】:

    标签: ruby amazon-sqs


    【解决方案1】:

    我认为通过创建两个队列——一个普通队列和一个优先级队列,你走在了正确的轨道上。

    在这种情况下,您不一定需要进行长时间的民意调查。由于优先队列中的消息优先于普通队列中的消息,因此您可以采用如下方法:

    1. 轮询优先级队列,直到没有消息为止。
    2. 轮询普通队列并在普通队列中的每条消息后重复第 1 步。

    【讨论】:

    • 投票是一个阻塞调用。如果队列中没有消息,我将被阻塞在优先队列中并且永远不会移动到正常队列。
    • 这取决于您用于轮询队列的 API。这里的文档提到您可以指定等待时间。这里的短暂等待时间应该相当于简单检查是否有消息 - docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/…
    • 是的,不要使用长轮询,它根本不会阻塞。
    • shoryuken 将轮流遍历所有队列,更多地根据权重检查更高优先级的队列。如果您想继续检查高优先级队列,并且只在它为空后才转到较低优先级,则需要对其进行修补/分叉。
    【解决方案2】:

    您可以使用Shoryuken 并设置更高的权重来配置优先级:

    queues:
      - [high_priority_queue, 5]
      - [low_priority_queue, 1]
    

    【讨论】:

      猜你喜欢
      • 2017-04-12
      • 2016-01-18
      • 2019-04-11
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多