Опрос и использование сообщений из Amazon SQS как услуги

Я использую SQS в качестве «моста» в своей системе, который получает задачи от GAE и будет обрабатываться на EC2. В настоящее время я могу добавлять задачи в эту очередь из GAE, но с некоторыми трудностями при использовании этих задач на EC2. Итак, мои вопросы:

  1. Каковы рекомендуемые способы создания потребителя задач (на основе Python) на EC2, который будет следить за SQS и назначать новые входящие задания для работ?
  2. Есть ли у AWS такой продукт для мониторинга SQS? Если нет, то является ли period task Celery хорошим кандидатом?

person TTT    schedule 14.02.2014    source источник
comment
Вы нашли ответ на этот вопрос? Я также задаюсь этим вопросом.   -  person Colleen    schedule 28.01.2015


Ответы (2)


Потребитель задачи — это просто (длинный) опросчик. Библиотека boto Python поддерживает SQS. AWS предоставляет сервис SQS, но не является потребителями. Я не знаком с сельдереем.

Стандартная практика состоит в том, чтобы опросить сообщение (которое помечает его как «невидимое»), а затем выполнить действие на стороне потребителя. По завершении действия удалить сообщение. Если действие не выполнено из-за исчезновения одного из ваших вычислительных узлов, через некоторое время сообщение станет видимым и будет рассмотрено в будущем опросе. Если вам нужно что-то более умное, вы можете реализовать внешний ESB или поэкспериментировать с AWS SWF.

http://boto.readthedocs.org/en/latest/ref/sqs.html

http://aws.amazon.com/swf/

person sallie    schedule 14.02.2014
comment
Спасибо за ваши предложения. Я проверю SWF. Но я также открыт для любых систем мониторинга sqs, которые периодически опрашивают очередь и увольняют воркеров. - person TTT; 15.02.2014

Вы можете использовать сервис AWS Beanstalk для обработки задач в очереди AWS Beanstalk с SQS

Если вы не хотите разбивать свой код для запуска в Beanstalk, вы можете написать некоторый код для beanstalk, чтобы вытащить элемент из очереди, а затем отправить его на ваш сервер ec2, по сути заставив Beanstalk раздавать сообщения/задачи в очереди. Это избавит ваш сервер ec2 от необходимости постоянно опрашивать очередь.

person Baxny    schedule 28.01.2016