2010-04-20 171 views
13

我正在設計一個爲我們的電子商務網站發送電子郵件的服務(訂單確認,提醒等......) 該計劃是一個「SendEmail」方法,生成一段代表要發送的電子郵件的XML,並將其粘貼到Amazon SQS隊列中。 我的網絡應用程序和其他應用程序將使用它來「發送」電子郵件。使用亞馬遜SQS的最佳做法 - 輪詢隊列

然後,我需要一種檢查隊列,並物理髮送電子郵件的方式。 (我知道我將如何發送電子郵件)

我很好奇最好的方式來「輪詢」隊列將是什麼?

我應該創建一個Windows服務,並使用類似Quartz.net來安排它每x分鐘檢查一次隊列嗎? 有沒有更好的方法來做到這一點?

+0

您可能已經知道這一點,但我想指出的一件事是,SQS可能會多次交付相同的物品。看到這個常見問題項目:http://aws.amazon.com/sqs/faqs/#How_many_times_will_I_receive_each_message – BigJoe714 2010-04-21 00:59:02

回答

3

如果我是你,如果我真的想讓SQS爲這種情況工作,我會創建一個windows服務,每隔10分鐘從隊列中檢索任何消息,然後分派它們。

如果我可以使用不同的服務,我會認真考慮使用類似Postmark(我今天剛剛發現的感謝Jeff Atwood’s blog post的評論)。你只需將你的電子郵件信息提交給他們的api,他們就可以完成剩下的工作。他們甚至可以檢查退回的電子郵件。我從來沒有使用這項服務,但我認爲這聽起來不錯,並會認真考慮在將來使用它。

25

聽起來更像Amazon SNS是你的哈克貝利。 (不太清楚這意味着什麼,但我曾在一部電影中看到它)。

SQS更像是「希望有人在過期前的某個時刻尋找此消息!」 SNS看起來更像是一個「我需要確保這能夠立即得到任何需要的人!」

它甚至包括電子郵件作爲預建運輸。 (甚至不知道這是正確的字)

亞馬遜SNS提供了可用於創建您要通知應用程序(或人)的主題,訂閱客戶端這些主題一個簡單的Web服務接口,消息發佈,並通過客戶選擇的協議(即HTTP,電子郵件等)傳遞這些消息。 Amazon SNS使用「推送」機制向客戶端發送通知,無需定期檢查或「輪詢」新信息和更新。

可以肯定,它們具有相同的免費增值模式的服務有限制,其餘的電子郵件:

可以開始使用亞馬遜SNS是免費的。每個月,亞馬遜SNS客戶對前10萬亞馬遜SNS請求不收取任何費用,對HTTP前100000通知不收費,對前1000個電子郵件通知不收費。

+3

哈哈哈克貝利,我認爲這說的是暗示它是你的朋友。哈克貝利是湯姆索耶的朋友。 – 2010-12-03 21:53:37

+6

http://en.wikipedia.org/wiki/Huckleberry#Use_in_slang – 2011-10-07 13:33:33

+0

「我是你的huckleberry ...」:Val Kilmer作爲Doc墓碑中的墓碑 – 2015-09-03 04:59:24

-1

Windows服務是最好的方法,但你不能拿它。在ASP.NET環境中運行後臺作業有HostingEnvironment.QueueBackgroundWorkItem。實施的一個好的起點繼續投票(通過長輪詢)是sqs-consumer