我有一个页面,每当有人打开类次时都会发送一封电子邮件。然后将这些电子邮件发送给很多人。如果有人在 fx 五分钟的时间间隔内打开两个类次,则发送两封电子邮件。该应用程序部署在 App Engine 上,因此我有兴趣将发送的邮件降至最低。
我想要的是在用户打开第一个类次后 10 分钟设置一些 fx 计时器,然后在发送任何邮件之前收集用户在此时间间隔内可能打开的任何其他类次。然后我可以将它们全部合并到一封电子邮件中。
你们中有人知道如何在 App Engine 上执行此操作吗?
编辑
如果用户只收到一封电子邮件,其中包含所有打开的类次的信息,而不是每个类次一封电子邮件,是否也更好。我不想向任何人发送垃圾邮件 :)
最佳答案
您可以在未来 10 分钟内创建一个 ETA 任务队列。您可以根据用户 ID + 批处理 ID 为该任务命名。批处理 ID 应与用户一起保存,以便 10 分钟窗口内的所有更改都获得相同的任务名称(防止队列中的重复任务)。
当任务执行时,您会发现所有具有指定批处理 ID 的更改,从用户模型中删除批处理 ID,以便他们可以开始新的批处理、构建您的电子邮件并发送。
关于java - 在时间间隔内收集用户电子邮件并在发送前将它们合并(GAE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316824/