如何使用AWS SES处理大型电子邮件队列和交付?

时间:2013-06-16 05:25:11

标签: amazon-web-services amazon-sqs

我们正在开发一款应用。需要处理大型电子邮件队列。我们计划将电子邮件存储在SQS队列中,并使用SES发送电子邮件。但对如何实际处理队列和进程队列有点困惑。我应该使用cronjob定期读取SQS队列并发送电子邮件吗?什么是实际触发将从我们的应用程序发送电子邮件的脚本的最佳方式?

1 个答案:

答案 0 :(得分:2)

将SQS与SES结合使用是一种很好的方法。如果出现问题,通过电子邮件发送请求仍将在队列中,并将在下次处理。

我只使用一个cron作业,每小时启动一次队列处理/电子邮件发送作业。这个工作作为一个简单的循环运行了一个小时:

while i've been running < 1 hour:
    if there's a message in the queue:
        process the message
        delete the message from the queue

我将WaitTimeSeconds参数设置为最大值(20秒),以便在必要时检查新消息将等待一段新消息,以便作业不会每隔几毫秒访问一次AWS。否则,我可以在循环中添加某种sleep语句。

我运行一小时的原因是作业可能会遇到一些错误,导致内存泄漏,或者其他一些意外问题。这样,任何排队的电子邮件请求仍将在下次启动作业时得到处理。

如果需要,您可以每15分钟启动一次作业,这样您将始终有四个处理队列请求的工作进程。如果其中一个因某种原因而死亡,你仍将继续处理其他三个。