【问题标题】:What is a cheap (read free) way to send notification emails on Heroku?什么是在 Heroku 上发送通知电子邮件的廉价(免费阅读)方式?
【发布时间】:2012-04-01 01:08:43
【问题描述】:

我正在构建一个网络应用程序,当用户的帖子获得新评论或用户被提及时,它会发送通知电子邮件。

我使用 Postmark 和 ActionMailer 来发送电子邮件,因此在我的 cmets 控制器中,每当创建新评论时,该操作都会触发 Mailer 发送电子邮件。问题是,这并没有我预期的那么快并且延迟了响应——当用户发表评论时,他不会立即通过 ajax 得到响应,而是等到控制器完成发送邮件。

所以我很自然地决定尝试使用 delay_job 进行后台处理。好吧,这确实有效,现在我发表评论时会立即得到回复。但是,我刚刚意识到要在 Heroku 上运行延迟作业,我需要手动启动一个工人测功机,一旦它启动,它就会一直保持下去,直到我缩小它。而且这似乎要花一些钱。

我想在尽可能少花钱的同时尝试这个,并四处寻找是否有任何解决方案。我确实找到了一个名为 HireFire 的解决方案,它会在有工作要做时自动启动您的测功机,并在没有工作要做时将其关闭(https://github.com/meskyanichi/hirefire)但是这个解决方案对服务收费,虽然比没有便宜,但仍然超出了我的初衷。

我什至在考虑不使用延迟作业并牺牲响应速度,至少在我看到该网站有任何吸引力之前。

所以我想知道,是否有任何解决方案(或 hack)可以让我在 Heroku 上免费发送通知电子邮件?还是大多数构建网站的人做这样的事情只是为额外的工作人员付费?

或者,至少在开始时不进行后台处理 ActionMailer 操作是否可以? (我不确定这对整个服务器有多少负载,例如,如果十个人同时在某事上,这是否会影响其他站点用户的性能)

【问题讨论】:

    标签: ruby-on-rails heroku actionmailer delayed-job background-process


    【解决方案1】:

    Hirefire 应该是最适合您的。我认为您可以免费使用它,它是开源的,但不知道运行它的要求。

    另一种解决方案可能是添加铁工人。他们免费为您提供每月 25 小时的工作时间。

    【讨论】:

      【解决方案2】:

      IronWorker 应该很好地满足您的需求。 (请注意,我为 Iron.io 工作。)无需管理服务器。只需创建工作人员,将它们上传到 IronWorker,然后立即运行或安排它们稍后再运行 - IronWorker 有一些灵活的调度选项。正如另一篇文章中提到的,每月有很多时间是免费的。

      【讨论】:

        【解决方案3】:

        如果您不需要实时,即您对 10 分钟的延迟感到满意,您可以使用 Heroku 调度程序。每 10 分钟运行一个任务,该任务会跳过当前的作业队列,然后终止,直到下一个 10 分钟的迭代。

        不是免费的,但也没有排队工人那么多。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-10
          • 2018-02-10
          • 2017-06-11
          • 2010-09-08
          • 2019-08-29
          • 2016-09-18
          • 2020-03-15
          • 1970-01-01
          相关资源
          最近更新 更多