java - 在时间间隔内收集用户电子邮件并在发送前将它们合并(GAE)

标签 java google-app-engine web-applications

我有一个页面,每当有人打开类次时都会发送一封电子邮件。然后将这些电子邮件发送给很多人。如果有人在 fx 五分钟的时间间隔内打开两个类次,则发送两封电子邮件。该应用程序部署在 App Engine 上,因此我有兴趣将发送的邮件降至最低。

我想要的是在用户打开第一个类次后 10 分钟设置一些 fx 计时器,然后在发送任何邮件之前收集用户在此时间间隔内可能打开的任何其他类次。然后我可以将它们全部合并到一封电子邮件中。

你们中有人知道如何在 App Engine 上执行此操作吗?

编辑

如果用户只收到一封电子邮件,其中包含所有打开的类次的信息,而不是每个类次一封电子邮件,是否也更好。我不想向任何人发送垃圾邮件 :)

最佳答案

您可以在未来 10 分钟内创建一个 ETA 任务队列。您可以根据用户 ID + 批处理 ID 为该任务命名。批处理 ID 应与用户一起保存,以便 10 分钟窗口内的所有更改都获得相同的任务名称(防止队列中的重复任务)。

当任务执行时,您会发现所有具有指定批处理 ID 的更改,从用户模型中删除批处理 ID,以便他们可以开始新的批处理、构建您的电子邮件并发送。

关于java - 在时间间隔内收集用户电子邮件并在发送前将它们合并(GAE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316824/

相关文章:

java - 用于 Java RESTful Web 服务应用程序的 Angular 5 客户端(在 Netbeans IDE 中)

javascript - 如何在 Sheets API 中创建 FilterView 后启用它

java - phong 着色器中的 LibGdx 着色器 "no uniform with name..."

php - 未捕获的异常 'Google_IO_Exception' 消息为“HTTP 错误 : Unable to connect

java - Google App Engine - 错误 503_服务不可用

asp.net - bin 文件夹内任何文件的任何更改是否会导致 ASP.NET Web 应用程序中的应用程序回收?

java - 在 Play 中通过多对多关系过滤模型对象! 2.0

java - Spring-boot资源服务器仅在过期时验证 token

java - 如何编写一个方法,它接受 0 或 1 的 int args 并给出输出 1 或 0

google-app-engine - Google Appengine 云任务 alpha 处理程序 http 404 错误