Рекомендации по использованию Amazon SQS - опрос очереди - PullRequest
13 голосов
/ 21 апреля 2010

Я разрабатываю сервис для отправки электронных писем для нашего сайта электронной коммерции (подтверждения заказов, оповещения и т. Д.). Планируется использовать метод «SendEmail», который генерирует кусок XML, представляющий отправляемое письмои вставляет его в очередь Amazon SQS.Мое веб-приложение (я) и другие приложения будут использовать это для «отправки» электронных писем.

Затем мне потребуется способ проверки очереди и физическая отправка сообщений электронной почты.(Я знаю, как я собираюсь отправлять электронные письма)

Мне интересно, каким будет лучший способ «опроса» очереди?

Должен ли я создать службу Windowsи использовать что-то вроде Quartz.net, чтобы запланировать проверку очереди каждые x минут, например?Есть ли лучший способ сделать это?

Ответы [ 5 ]

25 голосов
/ 11 июля 2010

Звучит больше как Amazon SNS - это ваша черника. (не совсем уверен, что это значит, но однажды я видел это в кино).

SQS - это скорее «кто-то надеется, что кто-то ищет это сообщение до того, как оно истечет!» где SNS больше похоже на «Мне нужно убедиться, что это дойдет до того, кто в этом нуждается сразу»!

Это даже включает в себя электронную почту в качестве готового транспорта. (даже не уверен, что это правильное слово)

Amazon SNS предоставляет простой интерфейс веб-сервисов, который можно использовать для создания тем, о которых вы хотите уведомлять приложения (или пользователей), подписывать клиентов на эти темы, публиковать сообщения и получать эти сообщения по выбранному протоколу клиента ( т.е. HTTP, электронная почта и т. д.). Amazon SNS доставляет уведомления клиентам, используя механизм «push», который устраняет необходимость периодически проверять или «опрашивать» новую информацию и обновления.

Конечно, у них та же модель freemium, что и у остальных сервисов с ограничениями по электронной почте:

Вы можете начать работу с Amazon SNS бесплатно. Каждый месяц клиенты Amazon SNS не платят за первые 100 000 запросов Amazon SNS, не взимают плату за первые 100 000 уведомлений по HTTP и не взимают плату за первые 1000 уведомлений по электронной почте.

3 голосов
/ 22 апреля 2010

Если бы я был вами и если бы я ДЕЙСТВИТЕЛЬНО хотел, чтобы SQS работал для этого сценария, я бы создал службу Windows, которая будет извлекать любые сообщения из очереди каждые 10 минут, а затем отправлять их.

Если бы я мог потенциально использовать другой сервис, я бы серьезно подумал об использовании чего-то вроде Почтовый штемпель (о котором я только что узнал сегодня благодаря комментарию к сообщению в блоге Джеффа Этвуда ) , Вы просто отправите информацию о своем электронном сообщении в их API, а они сделают все остальное. У них даже есть API для проверки отскоченных писем. Я никогда не пользовался этим сервисом, но думаю, что он звучит великолепно, и серьезно подумал бы об его использовании в будущем.

1 голос
/ 04 декабря 2012

Похоже, SES - это то, что вам нужно.http://aws.amazon.com/ses/ Это также очень недорого по сравнению с другими подобными услугами или созданием других систем.

0 голосов
/ 28 июня 2017

Служба Windows - лучший способ, но вы не должны принимать его. Для запуска фонового задания в среде ASP.NET существует HostingEnvironment.QueueBackgroundWorkItem. Хорошей отправной точкой для реализации продолжения опроса (посредством длинного опроса) является sqs-consumer .

0 голосов
/ 18 июля 2016

Вы можете использовать сервис AWS Beanstalk для использования задач в очереди. http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html

...