我有GAE申请。我有NoSQL的电子邮件和谷歌驱动器的刷新令牌。我有 Cron职位为每个PDF 激活推送队列以便下载此内容。
不,我想向每个用户发送有关其PDF数据的电子邮件。
我无法发送每个文档的电子邮件(例如,如果用户test@gmail.com有 10 pdf 文档),我可以发送 10封电子邮件到这封邮件 - 每个pdf任务发送每封邮件。
但如何收集用户数据并一起发送?
每个任务都适用于每个PDF。我应该一起收集每个用户数据。我发送一封关于所有文件的电子邮件(在我的例子中,一封电子邮件想要包含10份pdf文档数据)。
我有一个想法 - 将数据保存在数据存储区中,第二天另一个,另一个Cron作业将从数据库收集数据并发送邮件。这样好吗?
答案 0 :(得分:1)
是的,收集数据存储区中的数据,并每天发送一次。典型的模型可能是(在python中):
class DigestEmail(db.Model):
recipient = db.StringProperty()
pdf_id = db.StringProperty()
sent = db.BooleanProperty(default=False)
然后,当您需要从任务队列发送电子邮件时,请创建DigestEmail实体。然后,每天一次(或其他)查询您的DigestEmail实体,其中sent = False,按收件人排序,如下所示:
query = DigestEmail.gql('WHERE sent = False ORDER BY recipient')
然后迭代查询结果并按收件人组合在一起。发送电子邮件,并将sent属性设置为True以防止再次发送。 (或者,完全删除实体)。