如何实施RateLimit以通过play.mvc.Mailer发送电子邮件?
我正在为我的play framework 1.2.5应用程序实现SES以取代GMAIL。该应用程序遇到可能一次发送200封电子邮件(通知)的情况,因此我需要将它们RateLimit为5个收件人/秒。亚马逊建议使用Google Guava的RateLimit类(http://sesblog.amazon.com/post/TxKR75VKOYDS60/How-to-handle-a-quot-Throttling-Maximum-sending-rate-exceeded-quot-error)。我现在正在扩展Play的Mailer课程。如果我尝试调用我自己的send方法,例如sendWithRateLimit(Object ... args),我会丢失使用play的LocalvariablesNamesEnhancer类获取的上下文,因此它不知道要调用哪个模板。
非常感谢任何帮助。
答案 0 :(得分:1)
现在太迟了,但这样做的方法是:
Email
,将其保存到数据库Email
记录的作业,并计划以允许的速率运行Email
记录,使用邮件发送电子邮件答案 1 :(得分:0)
我沿着这条路走了大约6个小时,并意识到我正在编写太多的代码以便利用SES。我们将使用Mandrill的Heroku插件代替:https://addons.heroku.com/mandrill