带有GAE和每分钟配额的批量电子邮件

时间:2011-03-08 23:16:56

标签: google-app-engine email quota

我正在与GAE一起开发投票申请,其中包括向每位选民发送电子邮件。在我的初步测试中,我查看了每分钟的电子邮件配额,并引发了此异常:

OverQuotaError: The API call mail.Send() required more quota than is available.

我能够通过启用结算来解决这个短期问题,这大大增加了每分钟的电子邮件配额,但是防止此类异常被提出的正确方法是什么?如果我的应用程序变得非常成功并且我超过了更大的配额,那么引发此异常将是一个大问题。

我不想把调用发送电子邮件试试,除了阻止,因为这是在处理表单后完成的,我不希望用户等待对POST的响应。

这是任务队列的一个很好的用例吗?如果是这样,我是否会在任务队列中发送一批电子邮件请求,或者每个请求发送电子邮件的请求都在任务队列中?前者似乎更好,因为处理POST会更快。无论我采用哪种方式,我是否会在发送每封电子邮件之间添加延迟以确保它们不会被快速发送并且我会超过配额?

2 个答案:

答案 0 :(得分:3)

是的,非常适合任务队列,因为您可以通过更改queue.yaml中的属性来限制发送电子邮件的速率.yaml

每个任务一封电子邮件最好,所以如果任务失败并重试,它只会重试失败的一个而不是全部批次

答案 1 :(得分:0)

是肯定的。使用任务队列。如果任务正在发送电子邮件,您可以决定每分钟应运行多少任务。如果任务失败,它将重试执行。