如何使用 Google Cloud Tasks 重新安排任务

问题描述 投票:0回答:1

我正在实现一项功能,在客户卸载我们的应用程序后 24 小时向他们发送电子邮件。这是通过 Google Cloud Tasks 触发 HTTP 端点来完成的,该端点会在发送电子邮件之前检查应用程序是否保持卸载状态。由于客户可能会在此期间重新安装和卸载应用程序,因此出现了挑战。我的目标是:

  • 确保电子邮件仅发送一次
  • 在最近的卸载事件发生后 24 小时延迟发送电子邮件

我目前使用 Google Cloud Tasks 的实现可以有效地处理重复数据删除,通过禁止使用重复 ID 创建任务来防止出现多封电子邮件。但是,我在重新安排或推迟任务方面遇到了限制,因为:

考虑到这些限制,我如何设法让任务仅在最新卸载事件后 24 小时执行一次,特别是考虑到 24 小时内可能发生多个卸载/重新安装事件?

node.js google-cloud-run google-cloud-tasks
1个回答
0
投票

如果您有数据库,您可以在卸载后存储任务id,当同一用户重新安装时,删除待处理的任务并清除任务id。冲洗并重复。

如果您没有数据库,则需要一种唯一标识用户的方法。您可以使用这个唯一的用户 ID 作为任务 ID 加上一个增量整数。然后,当用户安装时,检查任务列表中是否有以用户 id 为后缀的任务。

© www.soinside.com 2019 - 2024. All rights reserved.