【问题标题】:Efficient method to read messages from sqs without polling consecutively从sqs读取消息而无需连续轮询的有效方法
【发布时间】:2014-10-21 19:15:44
【问题描述】:

我对 AWS SQS 队列非常陌生,目前正在使用 python 和 boto。 现在我可以通过连续轮询从 SQS 读取消息。

脚本如下:

while 1:
    m = q.read(wait_time_seconds=10)
    if m:
        print m

如何在不使用 while 循环的情况下使此脚本不断侦听队列中的新增内容? 有没有办法为 SQS 编写 Python 消费者,而不必定期轮询新消息?

【问题讨论】:

    标签: python-2.7 boto amazon-sqs


    【解决方案1】:

    不是真的……这就是 SQS 的工作原理。如果在等待期间有消息到达,它几乎会立即返回。

    这并不是看起来的低效操作。

    如果您将超时时间增加到允许的最大值 20 秒,那么在最坏的情况下,您每月将生成不超过 3 x 60 x 24 x 30 = 129,600 个“空”民意调查... × 每次民意调查 $0.00000050 = 0.0648 美元。 (前 1,000,000 个请求的费用为 0 美元。)

    请注意,在超时期间,如果有新消息到达,它将几乎立即返回,而不是等待整整 20 秒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-15
      • 1970-01-01
      • 2018-10-23
      • 2014-02-01
      • 2015-09-27
      • 1970-01-01
      • 2022-07-27
      • 2021-03-07
      相关资源
      最近更新 更多