trigger sqs high python callback amazon-web-services queue amazon-sqs

python - high - sqs retention period



¿Cómo notifica el SQS de Amazon a uno de mis servidores de "trabajadores" cuando hay algo en la cola? (5)

Actual si no requiere una baja latencia, puede intentar esto:

Cree una alarma de reloj en la nube en su cola, como mensajes visibles o mensajes recibidos> 0. Como acción, enviará un mensaje a un tema sns, que luego puede enviar el mensaje a sus trabajadores a través de un punto final http / s.

normalmente este tipo de enfoque se usa para autoescalar.

Estoy siguiendo este tutorial: http://boto.s3.amazonaws.com/sqs_tut.html

Cuando hay algo en la cola, ¿cómo puedo asignar uno de mis 20 trabajadores para procesarlo?

Estoy usando Python.


Además de señalar un problema con SQS: debe buscar nuevas notificaciones, y no hay garantía de que en una encuesta en particular reciba un evento que exista en la cola (esto se debe a la redundancia de su arquitectura). Esto significa que debe considerar la posibilidad de que su encuesta no haya devuelto un mensaje que existía (que para mí significaba que necesitaba aumentar la tasa de sondeo).

En general, encontré demasiadas limitaciones con SQS (como he encontrado con otras herramientas de AWS como SimpleDB). Pero esa es solo mi opinión inyectada.


Esto es (ahora) posible con Long polling en una cola SQS.

http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/Query_QueryReceiveMessage.html

Soporte largo de sondeo (número entero de 1 a 20): la duración (en segundos) que la llamada a la acción ReceiveMessage esperará hasta que un mensaje esté en la cola para incluir en la respuesta, en lugar de devolver una respuesta vacía si aún no hay un mensaje disponible.

Si no especifica WaitTimeSeconds en la solicitud, el atributo de cola ReceiveMessageWaitTimeSeconds se usa para determinar cuánto tiempo esperar.

Tipo: entero de 0 a 20 (segundos)

Valor predeterminado: ReceiveMessageWaitTimeSeconds de la cola.



Desafortunadamente, SQS no tiene la semántica que a menudo esperábamos en las colas. No hay notificación ni ningún tipo de bloqueo de "obtener" llamada.

El servicio de notificación simple / SNS relacionado con Amazon puede serle útil en este esfuerzo. Cuando haya agregado trabajo a la cola, puede enviar una notificación a los trabajadores suscritos.

Ver también:

http://aws.amazon.com/sns/

Mejores prácticas para usar Amazon SQS: sondear la cola