Configurar a sondagem longa no Amazon SQS
Quando o tempo de espera da ação da API ReceiveMessage é maior do que 0, a sondagem longa está em vigor. O tempo máximo de espera de sondagem longa é de 20 segundos. A sondagem longa ajuda a reduzir os custos de uso do Amazon SQS eliminando o número de respostas vazias (quando não há mensagens disponíveis para uma solicitação ReceiveMessage) e respostas vazias falsas (quando mensagens estão disponíveis, mas não são incluídas em uma resposta). Para obter mais informações, consulte Sondagem curta e longa do Amazon SQS.
Para garantir o processamento ideal de mensagens, use as seguintes estratégias:
-
Na maioria dos casos, você pode definir o tempo de espera de
ReceiveMessagecomo 20 segundos. Se 20 segundos for muito longo para seu aplicativo, defina um tempo de esperaReceiveMessagemais curto (no mínimo, 1 segundo). Se você não usar um AWS SDK para acessar o Amazon SQS, ou se tiver configurado um AWS SDK com um tempo limite mais curto, poderá ser necessário modificar o cliente do Amazon SQS para permitir solicitações mais longas ou para usar um tempo limite menor para sondagem longa. -
Se você implementar a sondagem longa para várias filas, use um thread para cada fila, em vez de um único thread para todas as filas. O uso de um único thread para cada fila permite que seu aplicativo processe as mensagens em cada uma das filas conforme se tornam disponíveis, enquanto o uso de um único thread para sondar várias filas pode fazer com que seu aplicativo não possa processar as mensagens disponíveis em outras filas enquanto o aplicativo aguarda (até 20 segundos) por uma fila que não tem mensagens disponíveis.
Importante
Para evitar erros de HTTP, certifique-se de que o tempo limite da resposta HTTP para solicitações ReceiveMessage é maior do que o parâmetro WaitTimeSeconds. Para obter mais informações, consulte ReceiveMessage.