Google App引擎锁定

只是想知道你们中的任何一个人是否遇到过这个问题。 我在Google App Engine上玩弄Python邮件API,并创建了一个应用程序,通过POST接受消息正文和地址,在数据存储中创建一个实体,然后每分钟运行一次cron作业,抓取200个实体并发送删除电子邮件,然后删除实体。

我用1500封电子邮件进行了实验,在数据存储中创建了1500个实体,并发送了1500封电子邮件。 然后我看看我的统计数据,并看到约。 配额中使用了45,000个接收者,这怎么可能?

所以我的问题是“收件人通过电子邮件”配额实际计算在哪一点? 在创建邮件对象的时候或者我实际send()它的时候? 我希望获得第二名,但配额似乎显示出不同。 我确实在cron和任务之间传递邮件对象,等等。有人对此有任何信息吗?

谢谢。

更新 :事实证明,我实际上是发送了一个只有1500个队列的45k邮件。看来,一个cron作业会一直运行,直到前一个完成并与相同的实体合作。 因此,问题变为“如何锁定实体并确保在发送电子邮件之前没有人选择它们”?

再次感谢!


使用任务发送电子邮件。

创建一个将键作为参数的任务,检索该键的存储实体,然后发送电子邮件。

当您的处理程序接收到正文和地址时,按照现在的方式进行存储,但是随后将任务排队以执行发送并将数据存储区对象的密钥传递给该任务,以便知道要发送电子邮件的对象。

您可能会发现主体和地址足够小,您可以将它们作为参数传递给任务,并让任务发送电子邮件,而无需直接在数据存储中存储任何内容。

这也有一个好处,就是如果你想限制在给定的时间(配额)内发送的电子邮件的数量,你可以用这个速率设置一个任务队列。


实例化电子邮件对象当然不会计入您的“收件人电子邮件”配额。 与其他App Engine服务一样,您在触发RPC时使用配额,即调用send()

如果您打算通过电子邮件发送1500个收件人,并且App Engine表示您通过电子邮件发送了45,000个邮件,则您的代码存在错误

链接地址: http://www.djcxy.com/p/67451.html

上一篇: Google App Engine Locking

下一篇: app download/upgrade from market apk programmatically