使用Rails Action Mailer避免电子邮件传递延迟

时间:2017-11-04 11:59:13

标签: ruby-on-rails email heroku actionmailer

我的Rails应用程序中的用户控制器在保存@user后,在其创建操作中发送电子邮件,如下所示:

  def create
    @user = User.new(user_params)

    respond_to do |format|
      if @user.save
        UserMailer.welcome_notification(@user).deliver
        format.js { }
      else
        # more code
      end
   end

该操作只是向刚刚注册的用户发送欢迎电子邮件。 一切正常,但发送电子邮件大约需要两秒钟,用户必须等待两秒钟后才能点击注册表单中的提交按钮。这种延迟相当尴尬,我考虑用以下两种方法来缓解它:

  1. 使用' loading ...'动画(我不喜欢这样做 延迟仍将存在。
  2. 使用Delayed-jobResqueSidekiqWhenever
  3. 等宝石作为后台作业发送电子邮件

    我倾向于第二种选择,但因为在我担心之前我还没有这样做:

    1. 这是一种矫枉过正吗?我只是发送这封电子邮件。想知道是否 这不是太多。
    2. 由于工人配置错误或只是使用它们,Heroku的成本可能会增加。
    3. 虽然我做了一些研究,但我还不清楚哪种宝石最适合这个问题。
    4. 您能否就减少此类延误的最佳做法提出建议?

0 个答案:

没有答案