如何限制GAE电子邮件保持在电子邮件配额下

时间:2014-02-28 09:29:03

标签: java google-app-engine appstats

我正在制作GAEJ申请,该申请将在活动基础上定期发送电子邮件 我目前的问题是,我很难想出跟踪每个配额的最佳方式。我曾希望在我的代码中尝试访问appstats,以检查最后一分钟内的mail.send呼叫总数。那天,但该代码的文档相当缺乏。

任何建议都会受到欢迎,欢呼。

2 个答案:

答案 0 :(得分:0)

一种方法是在每个配额日保留内存缓存中的计数。这些计数中的每一个都需要由数据存储区分片计数器支持,以便何时/如果内存缓存计数被驱逐。

答案 1 :(得分:0)

正如伊恩建议的那样,你可以跟踪通过柜台发送的邮件数量。如果有大量邮件,请考虑使用分片计数器。

另一种选择是将消息放入任务队列,并将任务队列的输出限制为每天100条消息(如果您希望保持在免费配额之下)。这样,如果今天无法发送消息,它将在明天发送。

要强制执行另一个配额,例如8个消息/分钟或8个附件/分钟,您可以简单地链接任务队列:第一个速率为100 /天,然后另一个速率为32 /分钟。这样你就可以完全控制你的配额。

警告:

  • 要匹配Google计算配额的方式,您必须为每个收件人创建一个任务,因此对于发送给4个收件人的一封邮件,您将创建4个任务
  • 如果您发送过多邮件,任务队列可能会被阻塞(它们排空的速度比填充的慢)。所以你必须看看任务的数量。