【问题标题】:Best practices for using Amazon SQS - Polling the queue使用 Amazon SQS 的最佳实践 - 轮询队列
【发布时间】:2011-02-10 08:43:50
【问题描述】:

我正在设计一项服务,用于为我们的电子商务网站发送电子邮件(订单确认、提醒等...) 计划是有一个“SendEmail”方法,它生成代表要发送的电子邮件的 XML 块,并将其粘贴到 Amazon SQS 队列中。 我的网络应用程序和其他应用程序将使用它来“发送”电子邮件。

然后我需要一种方法来检查队列,并实际发送电子邮件消息。 (我知道我将如何发送电子邮件)

我很好奇“轮询”队列的最佳方式是什么?

我是否应该创建一个 Windows 服务,并使用 Quartz.net 之类的东西来安排它,例如每隔 x 分钟检查一次队列? 有更好的方法吗?

【问题讨论】:

  • 您可能已经知道这一点,但我想指出的一件事是,SQS 可能会多次交付相同的项目。请参阅此常见问题解答项目:aws.amazon.com/sqs/faqs/…

标签: c# amazon-web-services amazon-sqs


【解决方案1】:

如果我是你,如果我真的想让 SQS 适应这种情况,我会创建一个 Windows 服务,它每 10 分钟从队列中检索任何消息,然后分派它们。

如果我可以使用其他服务,我会认真考虑使用类似Postmark 的服务(感谢Jeff Atwood’s blog post 上的评论,我今天才知道这一点)。您只需将您的电子邮件信息提交给他们的 api,其余的交给他们。他们甚至有一个用于检查退回电子邮件的 API。我从未使用过这项服务,但我认为它听起来很棒,并且将来会认真考虑使用它。

【讨论】:

    【解决方案2】:

    听起来Amazon SNS 更像是你的越橘。 (不太清楚这意味着什么,但我曾经在一部电影中看到过)。

    SQS 更像是“希望有人在此消息过期之前的某个时间来查找此消息!” SNS 似乎更像是“我需要确保立即将其发送给任何需要它的人!”

    它甚至包括电子邮件作为预建传输。 (甚至不确定这是否是正确的词)

    Amazon SNS 提供了一个简单的 Web 服务接口,可用于创建您想要通知应用程序(或人员)的主题、为客户端订阅这些主题、发布消息以及通过客户端选择的协议传递这些消息 (即 HTTP、电子邮件等)。 Amazon SNS 使用“推送”机制向客户发送通知,无需定期检查或“轮询”新信息和更新。

    可以肯定的是,它们具有与其他服务相同的免费增值模式,但对电子邮件有限制:

    您可以免费开始使用 Amazon SNS。每个月,Amazon SNS 客户无需为前 100,000 个 Amazon SNS 请求付费,前 100,000 个 HTTP 通知免费,前 1,000 个电子邮件通知免费。

    【讨论】:

    • 哈哈哈克贝利,我认为这句话暗示它是你的朋友。因为哈克贝利是汤姆索亚的朋友。
    • “我是你的越橘……”:Val Kilmer 在 Tombstone 中饰演 Doc Holiday
    【解决方案3】:

    看起来 SES 正是您所需要的。 http://aws.amazon.com/ses/ 与其他类似服务或构建其他系统相比,它也非常便宜。

    【讨论】:

      【解决方案4】:

      您可以使用 AWS Beanstalk 服务来使用队列中的任务。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html

      【讨论】:

        【解决方案5】:

        Windows 服务是最好的方法,但你千万不要采取它。要在 ASP.NET 环境中运行后台作业,有HostingEnvironment.QueueBackgroundWorkItem。实现持续轮询(通过长轮询)的一个很好的起点是sqs-consumer

        【讨论】:

          猜你喜欢
          • 2015-09-28
          • 2015-09-27
          • 2017-09-26
          • 1970-01-01
          • 1970-01-01
          • 2014-12-08
          • 1970-01-01
          • 2014-03-23
          • 1970-01-01
          相关资源
          最近更新 更多