Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将GAE电子邮件限制在电子邮件配额之下_Java_Google App Engine_Appstats - Fatal编程技术网

Java 如何将GAE电子邮件限制在电子邮件配额之下

Java 如何将GAE电子邮件限制在电子邮件配额之下,java,google-app-engine,appstats,Java,Google App Engine,Appstats,我正在开发一个GAEJ应用程序,它将在活动和定期的基础上发送电子邮件。 我目前的问题是,我很难想出最好的方法来跟踪我在每个配额中的位置。我曾希望在代码中尝试访问appstats,以检查最后一分钟的mail.send呼叫总数&那天,但是代码的文档相当缺乏 任何建议都将不胜感激,干杯。一种方法是在内存缓存中为每个配额日保留一个计数。当/如果内存缓存计数被逐出,这些计数中的每一个都需要由数据存储切分计数器支持。正如Ian所建议的,您可以跟踪通过计数器发送的邮件数量。如果有很多邮件,请考虑使用锐利计数器

我正在开发一个GAEJ应用程序,它将在活动和定期的基础上发送电子邮件。
我目前的问题是,我很难想出最好的方法来跟踪我在每个配额中的位置。我曾希望在代码中尝试访问appstats,以检查最后一分钟的mail.send呼叫总数&那天,但是代码的文档相当缺乏


任何建议都将不胜感激,干杯。

一种方法是在内存缓存中为每个配额日保留一个计数。当/如果内存缓存计数被逐出,这些计数中的每一个都需要由数据存储切分计数器支持。

正如Ian所建议的,您可以跟踪通过计数器发送的邮件数量。如果有很多邮件,请考虑使用锐利计数器。

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

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

注意事项:

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

这适用于时事通讯式电子邮件,但我的最终目标是处理对时间相当敏感的错误和报告。此外,如果一切都在某一点上中断,它应该只发送几封电子邮件来表明有什么地方出错,而不是用错误电子邮件填满每个人的收件箱。