我需要以超过App Engine免费电子邮件配额(8封电子邮件/分钟)的速度发送电子邮件。我打算使用TaskQueue对电子邮件进行排队,但我想知道:我是否已经使用了库或Python模块来自动执行此操作?这似乎是某人可能遇到的那种问题。
答案 0 :(得分:4)
如果这是一个选项,为什么不启用结算?它会将最高速率从8个接收者/分钟跳到5,100个接收者/分钟。
前2000名获奖者每天都是免费的,只要您没有超过每日免费配额,我的理解是它不会花费您任何费用(如果您需要每天向超过2000人发送电子邮件,那么'无论如何都必须启用账单。)
答案 1 :(得分:3)
deferred库专为此类设计而设计。只需使用deferred.defer(message.send)
,并确保您使用的队列具有适当的执行率。
答案 2 :(得分:1)
答案 3 :(得分:0)
在我看来,最简单的方法是使用队列,从Amazon SQS开始,每分钟拉出8条记录,每分钟运行一次cron作业。
考虑到它被推入队列,然后被取出,我正在计算出它是一种非常便宜的服务。
见下文,0.000002是2个请求的费率。 (添加和查看)
每分钟8个请求,每小时60分钟,一天24小时。考虑到平均月份的30天,您仍然低于1美元。
0.000002 * 8 * 60 * 24 * 30 = $ 0.6912
这可能不是你想要的,但它应该是一个非常简单的解决方案。
编辑: 看到这里,一个python SQS& S3 Lib(sqs就是你应该寻找的所有东西)。
答案 4 :(得分:0)
我对这个问题的任何固定解决方案都不熟悉,但它应该是非常容易解决的问题。将电子邮件写入数据存储表,并使用auto_add_now日期字段记录它们输入的顺序。每分钟运行一次的cron作业将关闭八个最旧的记录,邮寄并删除它们。
当然,如果你能解决这个问题是一种相当通用的方式,那么你可以成为每个拥有一个很好的开源模块解决这个问题的人。