我是AWS SQS队列的新手,我目前正在使用python和boto。 现在我可以通过连续轮询从SQS读取消息。
脚本如下:
while 1:
m = q.read(wait_time_seconds=10)
if m:
print m
如何在不使用while循环的情况下使此脚本不断监听队列的新增内容? 有没有办法为SQS编写Python使用者,而不必定期轮询新消息?
答案 0 :(得分:2)
不是......这就是SQS的工作原理。如果在等待期间收到消息,则几乎会立即返回。
这似乎不是效率低下的操作。
如果你将超时时间增加到最大允许的20秒,那么,在最坏的情况下,你每月产生的不会超过大约3 x 60 x 24 x 30 = 129,600“空”民意调查...×每次投票0.00000050美元= $ 0.0648。 (前1,000,000个请求的费用为0美元。)
请注意,在超时期间,如果有新消息到达,它将立即返回,而不是等待整整20秒。