我正在与 GAE 开发一个投票应用程序,其中涉及向每个选民发送电子邮件。在最初的测试中,我超出了每分钟电子邮件配额,并引发了此异常:
OverQuotaError: The API call mail.Send() required more quota than is available.
我能够通过启用计费来解决这个短期问题,这大大增加了每分钟的电子邮件配额,但是防止将来出现此类异常的正确方法是什么?如果我的应用程序非常成功并且超出了更大的配额,那么引发此异常将是一个大问题。
我不想将发送电子邮件的调用放在 try, except block 中,因为这是在处理表单后完成的,并且我不希望用户等待对 POST 的响应。
这对于任务队列来说是一个很好的用例吗?如果是这样,我是否会将发送一批电子邮件的请求放入任务队列中,或者将每个发送电子邮件的请求放入任务队列中?前者似乎更好,因为处理 POST 会更快。无论我采用哪种方式,我是否会在发送每封电子邮件之间添加延迟,以确保它们不会发送得太快而超出配额?
最佳答案
是的,非常适合任务队列,因为您可以通过更改queue.yaml中的属性来限制电子邮件发送的速率
每个任务最好发送一封电子邮件,因此如果任务失败并重试,它只会重试失败的邮件,而不是整个批处理的邮件
关于google-app-engine - 带有 GAE 和每分钟配额的批量电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5239551/