2013-04-04 122 views
0

我正在制定发送和接收电子邮件的蓝图。我正在寻找最佳实践。SNS和SQS技术架构

  1. 我们必须发送,例如1000个消息点击一个按钮。如何使用SNS和SQS立即发送消息?创建一个SNS请求在队列中创建1000条消息是否是一个好主意?

有什么办法来安排1000条消息?

  1. 我们收到消息,最好的方法是使用SNS和SQS来处理消息?
+1

我很确定大多数地方限制了传出电子邮件的数量。 – 2013-04-04 01:48:04

+1

我不确定SNS,但默认情况下,SES的速率限制为5条/秒。 – 2013-04-04 01:49:45

回答

1

最好在按钮点击时在队列中放置1条消息,以便用户不必等待。然后有一个不同的过程,将消息从队列中取出,并将电子邮件或队列另外发送1000条消息,每条消息一条。

1

不要把它想成发送1000封电子邮件带有按钮的点击,想到它是调度邮件的工作。

不知道所有你正在尝试做的,但你可能也不愿意做1000的消息负载,同时用户正在等待按钮点击后的响应。

我会考虑,有2 SQS队列(至少),第一个队列用于安排批量作业,在鼠标单击您插入单个作业,即'发送此电子邮件给1000人'作为Travis R建议。

另一个工作就可以查询Q1,看到“发送这些1000人这封电子邮件,然后它可以创建1000条SQS消息到Q2,每个电子邮件地址。

第三个过程(可能多他们),会看Q2,从列表中发送一个电子邮件地址,并删除消息。使用这种方法,您可以通过使用SQS设置或通过限制“发送单个电子邮件”作业的时间安排来适应您的ISP的限制来降低发送速率。

还要考虑使用亚马逊SES和设立另一个进程监视反弹和投诉 - 你必然会有,如果你踢了一次1000+电子邮件。