【问题标题】:bulk email with GAE and per minute quota带有 GAE 和每分钟配额的批量电子邮件
【发布时间】:2011-03-08 23:16:56
【问题描述】:

我正在使用 GAE 开发一个投票应用程序,其中包括向每个选民发送电子邮件。在我最初的测试中,我超过了每分钟的电子邮件配额,并且引发了这个异常:

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

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

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

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

【问题讨论】:

    标签: google-app-engine email quota


    【解决方案1】:

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

    每个任务发送一封电子邮件是最好的,因此如果任务失败并重试,它只会重试失败的一个,而不是所有批次

    【讨论】:

    • 请注意,此解决方案仅在您从管理员发送时才有效。您不能代表您的用户从任务队列发送电子邮件。
    • 哇,实际上从任务队列发送电子邮件的规则与从响应 http 请求的代码发送电子邮件的规则不同?
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-07
      • 2010-12-07
      • 2019-05-11
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 2016-06-21
      相关资源
      最近更新 更多