Google app engine 如何确定发送电子邮件时报价过高错误的原因?

Google app engine 如何确定发送电子邮件时报价过高错误的原因?,google-app-engine,email,cron,task-queue,Google App Engine,Email,Cron,Task Queue,我发送带有cron作业和任务队列使用情况的电子邮件。作业每15分钟执行一次,使用的队列具有以下设置: - name: send-emails rate: 1/m max_concurrent_requests: 1 retry_parameters: task_retry_limit: 0 但经常出现apiproxy\u错误。过度引用错误异常会发生。我正在检查配额详细信息,并看到我仍然在每日配额内(收件人通过电子邮件发送,附件数据发送等),我相信我不会超过,因为我使用的速

我发送带有cron作业和任务队列使用情况的电子邮件。作业每15分钟执行一次,使用的队列具有以下设置:

- name: send-emails
  rate: 1/m
  max_concurrent_requests: 1
  retry_parameters:
    task_retry_limit: 0 
但经常出现
apiproxy\u错误。过度引用错误
异常会发生。我正在检查配额详细信息,并看到我仍然在每日配额内(收件人通过电子邮件发送,附件数据发送等),我相信我不会超过,因为我使用的速率仅为每分钟1个任务(即每分钟发送不超过1封邮件)


我错在哪里?我应该检查什么?

我自己没有尝试过,但是当您发现apiproxy_错误。OverQuotaError异常时,该消息是否包含有关为什么超出配额/超出了哪个配额的详细信息

try:
    send_mail_here
except apiproxy_errors.OverQuotaError, message:
    logging.error(message)

你发了多少封电子邮件?您尚未设置
存储桶大小,因此默认为5。您的
费率
设置桶的补充频率。因此,根据您当前的配置,您可以每分钟发送5封电子邮件。这意味着,如果您每15分钟向队列发送超过75封电子邮件,队列将被填满,并最终超过配额。

这正是我捕获异常的方式。消息说
API调用mail.Send()需要的配额比可用配额多
,即没有详细信息。确定,因此异常可能更有用。队列最多可包含100条消息。但一个任务只用于发送一封电子邮件。然而,当我查看日志时,我看到了
2014-06-02 18:43:46.514
2014-06-02 18:44:14.952
014-06-02 18:44:16.858
,这通常是每分钟一个任务(我所期望的
速率:1/m
)。@GAEfan,看起来我应该将
bucket\u size
定义为
1
,以便正确使用
rate
,对吗?为什么要设置如此低的比率和bucket size?您是否每15分钟只发送一封电子邮件?另外,您是否使用
.add(queue_name=“send emails”)
设置了任务队列名称。当队列中有许多任务且处理率较高时,存储桶大小限制了队列的处理速度。这允许您拥有较高的处理速率,以便在任务排队后不久开始处理,但当许多任务在短时间内排队时,仍会限制资源使用。如果为队列指定“否”,则默认值为5。是,如果您只想每分钟发送一封电子邮件,则需要更改存储桶大小。
速率
不是电子邮件的发送速率;这是铲斗的补充速率。因此,按照您的方式,您每1分钟发送5封(默认
bucket size
)电子邮件