我可以使用Cloud Pub / Sub稍后发送电子邮件吗?

时间:2017-08-08 08:37:51

标签: email google-app-engine google-cloud-pubsub

我们正在尝试实施一个队列,其中包含有关电子邮件收件人的详细信息以及需要向其发送电子邮件的投放时间。例如,假设您在我们的应用程序中添加了一个月后的特定日期和时间的提醒,我们需要在那时向您发送一封电子邮件,提醒您在我们的应用程序中发布的任何内容。

我们无法找到一种方法来告诉Pub / Sub在我们选择的时间运行特定任务。我们使用App Engine,但希望将我们的电子邮件脚本与Google Cloud功能隔离开来:

  • 用户在我们的应用程序中保存提醒,并要求稍后通过电子邮件提醒(此请求将发送到我们的Node.js App Engine Web服务)
  • 我们的网络服务将此“任务”添加到Pub / Sub或您推荐的任何其他解决方案。该任务包括用户的电子邮件地址,需要发送电子邮件的时间以及应该调用以发送电子邮件的URL。理想情况下,该网址应该是我们的Google云端功能。
  • 任务一直运行到完成,如果我们的云功能在尝试发送电子邮件时报告了任何问题,则重试

我们无法想出在GCP上执行此操作的简单方法。我们应该只在App Engine上使用CRON,每1分钟运行一次任务并查看我们的数据库以查找电子邮件任务吗?该方法的问题是App Engine CRON作业只能调用App Engine中的URL而不能调用我们的Cloud Function。这样,我们就必须弄乱我们的Web服务代码,并处理尝试发送电子邮件时可能出现的问题。我们如何实现这种功能?感谢。

1 个答案:

答案 0 :(得分:1)

PubSub不包含调度服务。你需要自己制作,例如使用AppEngine的任务队列,在AppEngine上使用CRON与云功能等进行交互。