2

为了释放我的前端服务器,我想将所有发送到 sendgrid 的请求(authentificaiton、confirmation、passwiord reset 和 transactionnal 电子邮件,例如“长时间没有访问”电子邮件和我们发送的每日电子邮件。

这是必要的,因为我们计划需要为 Web 应用程序本身保留主服务器的所有内存和电源,并且它包括尽快显示页面。因此,我们希望避免所有电子邮件例程占用我们的一些主要 Web 应用服务器内存/电源。

现在一切都在一台服务器上(在 Heroku 上的 dyno 上)(加上数据库)。

由于我们计划在前端有大量流量,我认为创建一个仅为电子邮件进程保留的测功机是有意义的(让我们称之为“电子邮件服务器/测功机”。

但它应该与应用程序和数据库对话

  • 例如,如果用户注册,则带有 Web 应用程序的主测功机必须向“电子邮件服务器”发送消息

  • 另一个例子:如果用户在 8 周前订阅并且从未在网站上登录,我将不得不访问同一个数据库以使用 cron 来查看是否需要发送电子邮件。

所以为了简短起见,

如何创建另一个只处理电子邮件的服务器

我应该把所有相同的宝石和环境

“电子邮件服务器”如何与主 Web 应用程序和数据库通信?

网络上的任何建议或资源可以解释如何执行此操作?

4

1 回答 1

1

我这样做的方式是我自己的应用程序是使用 Resque 和 Resque Mailer。Resque 是一个基于 redis 的队列,可以使用 heroku worker 运行。以下是一些可以帮助您入门的资源:

Resque Mailer 是一个插件,可让您使用 Resque 将来自 ActionMailer 的电子邮件作为后台。您可以在他们的 github README 中找到更多详细信息:

https://github.com/zapnap/resque_mailer

于 2013-05-13T18:49:43.287 回答