我在谷歌应用引擎应用程序上工作,该应用程序目前有大约4000个用户,我想写一个处理程序来向所有用户发送电子邮件。
问题是app引擎在从数据存储中获取实体方面存在限制。例如,可以从数据存储区返回的最大行数为1000.
我可以通过使用gql的循环和限制,偏移参数来逐步获得所有用户。但是这次30秒的处理程序的最大生命周期限制了我。
我做了一些研究来克服这个问题,我最终得到了后端。但在我看来,后端使用情况不同,我的意思是它不适合这种操作。
我怎样才能完成这项任务?
提前致谢..
答案 0 :(得分:0)
from google.appengine.api import mail
mail.send_mail(sender="Example.com Support <support@example.com>",
to="Albert Johnson <Albert.Johnson@example.com>",
subject="Your account has been approved",
body="""
Dear Albert:
Your example.com account has been approved. You can now visit
http://www.example.com/ and sign in using your Google Account to
access new features.
Please let us know if you have any questions.
The example.com Team
""")
答案 1 :(得分:0)
任务队列为您提供10分钟的截止日期。请参阅documentation
答案 2 :(得分:0)
您可以在一个请求中获得超过1000个项目。只是避免使用fetch并试试这个:
entities = Entity.all()#&lt; - no fetch
对于实体中的e: mail.send_mail()
这将继续吸引用户,直到10分钟的限制用完:很多实体,超过4000个用户。