У меня есть очередь sqs на amazon, которую опрашивают несколько потребителей.
Недавно я обнаружил, что numberofEmptyReceives
находится в 10 миллионах, это означает, что с меня взимают плату за этот запрос.
Ниже показано, как я получаю сообщение
while True:
for message in queue.receive_messages(AttributeNames=['All'], MaxNumberOfMessages=10):
Я знаю, что есть опция WaitTimeSeconds
, но документация предполагает, что она не делает длинный опрос
Продолжительность (в секундах), в течение которой вызов ожидает поступления сообщения в очередь, прежде чем вернуться.Если сообщение доступно, вызов возвращается раньше, чем WaitTimeSeconds.Если сообщения недоступны и время ожидания истекает, вызов успешно возвращается с пустым списком сообщений.
В частности
Если сообщение доступно, вызов возвращаетсяраньше, чем WaitTimeSeconds.
Из вышеприведенного предложения кажется, что boto3
все еще вызывает sqs
, чтобы проверить, есть ли сообщение или нет.
Как правильно вести длинный опрос с использованием boto3чтобы избежать получения оплаты за запрос?
Это так же просто, как установка thread.sleep
?
Я также не могу найти исходный код на github