13

私はeコマースサイトにメールを送信するためのサービスを設計しています(注文確認、アラートなど)。計画では、送信するメールを表すXMLのチャンクを生成し、スティックする「SendEmail」メソッドを使用します。 AmazonSQSキューにあります。私のWebアプリや他のアプリケーションは、これを使用してメールを「送信」します。

次に、キューをチェックし、電子メールメッセージを物理的に送信する方法が必要です。(私はどのようにメールを送信するかを知っています)

キューを「ポーリング」するための最良の方法について知りたいのですが。

たとえば、Windowsサービスを作成し、Quartz.netのようなものを使用して、x分ごとにキューをチェックするようにスケジュールする必要がありますか?これを行うためのより良い方法はありますか?

4

5 に答える 5

25

AmazonSNSがあなたのハックルベリーのように聞こえます。(それが何を意味するのかはよくわかりませんが、映画で一度見ました)。

SQSは、「誰かがこのメッセージの有効期限が切れる前のある時点で探しに来ることを願っています!」という意味です。SNSは「これが必要な人にすぐに届くようにする必要があります!」のように見えます。

構築済みのトランスポートとして電子メールも含まれています。(それが正しい言葉かどうかさえわかりません)

Amazon SNSは、アプリケーション(またはユーザー)に通知するトピックの作成、これらのトピックへのクライアントのサブスクライブ、メッセージの公開、および選択したクライアントのプロトコル(HTTP、メールなど)。Amazon SNSは、「プッシュ」メカニズムを使用してクライアントに通知を配信します。これにより、新しい情報や更新を定期的にチェックまたは「ポーリング」する必要がなくなります。

確かに、それらは他のサービスと同じフリーミアムモデルを持っていますが、電子メールに制限があります。

AmazonSNSを無料で開始できます。毎月、Amazon SNSのお客様は、最初の100,000件のAmazon SNSリクエスト、HTTPを介した最初の100,000件の通知、およびEメールを介した最初の1,000件の通知に対して料金を支払いません。

于 2010-07-11T01:40:54.813 に答える
4

私があなたであり、このシナリオでSQSを本当に機能させたい場合は、10分ごとにキューからメッセージを取得してディスパッチするWindowsサービスを作成します。

別のサービスを使用できる可能性がある場合は、消印のようなものを使用することを真剣に検討します(これは、 Jeff Atwoodのブログ投稿へのコメントのおかげで今日知りました)。あなたは彼らのAPIにあなたの電子メールメッセージ情報を提出するだけで、残りは彼らがやってくれるでしょう。バウンスされた電子メールをチェックするためのAPIもあります。私はこのサービスを利用したことがありませんが、素晴らしいサウンドであり、将来的に利用することを真剣に検討したいと思います。

于 2010-04-21T20:44:43.643 に答える
1

SESが必要なもののようです。http://aws.amazon.com/ses/他の同様のサービスや他のシステムの構築と比較しても、非常に安価です。

于 2012-12-03T22:50:25.847 に答える
0

AWS Beanstalkサービスを使用して、キュー内のタスクを利用できます。 http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features-managing-env-tiers.html

于 2016-07-18T04:29:47.027 に答える
0

Windowsサービスが最善の方法ですが、それを利用してはなりません。ASP.NET環境でバックグラウンドジョブを実行するには、がありHostingEnvironment.QueueBackgroundWorkItemます。(長いポーリングを介して)継続的なポーリングを実装するための適切な開始点は、sqs-consumerです。

于 2017-06-28T08:42:03.363 に答える