【问题标题】:Rails: Best way to schedule emailsRails:安排电子邮件的最佳方式
【发布时间】:2013-06-22 17:58:01
【问题描述】:

场景:“我有 500 条不同类型的帖子(因此,电子邮件在不同的预定日期发送,恰好在早上 7 点)。用户注册以每天通过以下方式接收 1 个或多个这些类型的帖子电子邮件(请记住,这可能意味着每天 5,000 多封电子邮件)。”

环顾四周,我一直看到"Whenever" gem 作为解决方案出现,但有人说它可能会导致服务器出现峰值。我还阅读了delayed_job 上的一些帖子,但有人说它冻结了,我不想发生这种情况。我用谷歌搜索了一些,但仍然找不到任何与我的问题相关的内容。

考虑到我的情况及原因,处理此问题的最佳方法是什么?

提前谢谢你。

【问题讨论】:

    标签: ruby-on-rails scheduled-tasks actionmailer


    【解决方案1】:

    用途:

    http://rubygems.org/gems/resque

    结合:

    https://rubygems.org/gems/resque_mailer

    最好的部分是您不必更改代码,您只需像使用 ActionMailer 一样发送它们!

    【讨论】:

    • 嘿@Hallucynogenyc,谢谢你的建议。我现在试一试。这在我的服务器上会有多重?我的另一个主要问题是调度部分。我正在查看“resque-scheduler”,但意识到,我的用户将选择他们希望接收帖子的日期(deliver_at)。这 3 个 gem(resque、resque_mailer 和 resque_scheduler)就足够了吗?
    • 它会像你想的那么重。调度 gems 不会自己加载你的服务器,但是当然,如​​果你要求他们一次发送 100 封邮件,它当然会加载服务器,就像你运行一个发送 100 封邮件的任务一样。在另一台服务器上运行此作业或小批量发送它们。因为用户会选择何时需要邮件,所以我不太关心服务器负载。
    • 另外,是的,那 3 颗宝石就足够了。
    • 另外,您认为“delayed_job”会是更好的解决方案吗? (对不起,如果我太好奇或讨厌..)
    • 我认为两者都可以很好地完成工作,不同之处在于我建议的 gems 提供了一个特定于邮件的工具,而延迟工作是一个通用的解决方案。除非我遇到问题,否则我会选择 resque。
    猜你喜欢
    • 2018-01-08
    • 1970-01-01
    • 2014-10-30
    • 2014-04-22
    • 2011-07-24
    • 2013-04-28
    • 2017-06-01
    • 1970-01-01
    • 2011-07-12
    相关资源
    最近更新 更多