У меня есть скрипт на Python, использующий библиотеку boto на экземпляре ec2, который является частью группы автоматического масштабирования. Сценарий обрабатывает сообщения из очереди SQS:
import boto
from boto.sqs.message import Message
conn = boto.connect_sqs()
q = conn.create_queue('queue-name')
while (qin.count() > 0):
m = q.get_messages()
#do something with the message
Имеет ли смысл использовать оператор while? Обновляется ли count() в режиме реального времени, когда:
Как заставить этот скрипт постоянно прослушивать новые добавления в очередь, даже если очередь пуста?
В этом вопросе Обработка элементов в очереди SQS с помощью php-скриптаупоминалось, что в клиентской библиотеке sqs ruby есть метод «опрос», который постоянно опрашивает очередь и при получении сообщения в очереди проходит это на блок ». Есть ли аналог в Python?
Также предполагалось, что SNS можно использовать для уведомления сценариев о состоянии очереди сообщений, но я не понимаю, как можно настроить быстро реагирующую систему с помощью SNS, поскольку метрические оповещения недостаточно детализированы.