2009-12-25 87 views
2

我需要以超过App Engine免费电子邮件配额(8封电子邮件/分钟)的速度发送电子邮件。我打算使用TaskQueue排队电子邮件,但我想知道:是否已有一个库或Python模块可以用来自动执行此操作?这似乎是以前可能碰到的那种问题。App Engine上的排队电子邮件

回答

3

deferred库专为这类事情设计。只需使用deferred.defer(message.send),并确保您使用的队列具有适当的执行速率。

+0

准确地说,我在找什么。谢谢! – ine 2010-01-01 23:24:00

+0

这很好:) – Alfred 2010-04-02 20:57:06

0

在我看来最简单的方法是使用一个队列,例如亚马逊SQS,并在每分钟运行的cron作业中每分钟拉8条记录。

考虑到它被推入队列,然后取出,我正在计算出这是一个非常便宜的服务的数学。

见下,0.000002是2请求的速率。 (Add and View)

每分钟8请求,一小时60分钟,一天24小时。考虑到平均月份的30天,您仍然不到1美元。

0.000002 * 8 * 60 * 24 * 30 = $ 0.6912

这可能不是正是你要找的,但它应该是一个非常简单的解决方案。

编辑: 看到这里,蟒蛇SQS & S3 Lib(sqs是你应该找的所有东西)。

http://pypi.python.org/pypi/Python-Amazon/0.5

+1

App Engine拥有自己的任务队列API。这是不必要的复杂。 – 2010-01-01 21:30:45

0

我不熟悉这个问题的任何解决方案,罐头,但它应该是很容易解决。将电子邮件写入数据存储区表,并使用auto_add_now日期字段记录它们输入的顺序。您每分钟运行的cron作业将关闭八个最旧的记录,将其邮寄并删除它们。

当然,如果你能解决这个问题是一个合理的通用方式,你可以成为一个开源模块的人解决这个问题的人。

1

它只需支付一年的费用就可以比设计解决方案更便宜。

+0

我也认为你是对的。如果你问我,每封邮件$ 0.0001便宜。比如说你每天发送1000条(总共3000条)额外的消息。如果我的计算是正确的,那么1年后你只需支付36.50美元。 – Alfred 2010-04-02 21:01:38

4

如果这是一个选项,为什么不启用计费?它将从8位接收者/分钟跳到最高速率为5,100位/分钟。

前2000名收件人每天都是免费的,只要您不打算每天免费配额,我的理解是它不会花费任何东西(如果您需要每天向超过2000人发送电子邮件,无论如何,必须启用计费)。

相关问题