【发布时间】:2014-01-10 02:40:59
【问题描述】:
我想从我的 Rails 应用程序自动向用户列表发送电子邮件。 数量范围从真正的少数用户 (5-10) 到用户组 (50-70)。 最大值将是所有用户(当前为 5000)。
我知道发送电子邮件会阻塞 Rails 应用程序,因此发送电子邮件应该借助排队系统和后台作业来完成,例如通过使用 DelayedJob、Resque 或 Sidekiq。
不幸的是,拥有这样一个后台作业需要 Heroku 平台上的工作进程。由于成本增加(至少在开始时),我想避免这种情况。
我可以采取任何替代方法吗?例如,第二个 Rails 应用程序只有一个工作进程,它只处理电子邮件(我猜这也会导致付费工作进程)?
是否可以通过 SendGrid、MailGun 或与 Heroku 完美集成的任何其他服务在没有此类工作进程的情况下发送大量电子邮件?
【问题讨论】:
-
你的 Rails 控制器在 Heroku 中超时,你不能这样做
-
有没有办法只在队列中有作业时运行工作人员测功机?我想避免运行一个在 99% 的时间内无事可做的工人测功机。或者这是否已经由 Heroku 以这种方式自动完成?
-
这可能会有所帮助github.com/phoet/freemium
-
是的,使用适合您需求的租用火
-
我将 autoscaler gem 与 Sidekiq 一起使用 - rubygems.org/gems/autoscaler 它会在您需要时启动一个工作器,然后再次将其关闭。效果很好。
标签: ruby-on-rails ruby ruby-on-rails-3 email heroku