我对 Ruby on Rails 很陌生,希望异步发送电子邮件以使我的应用程序响应更快。同步发送工作正常,将是我的替代方案。
我找到了一些站点并在我的 Gemfile 中定义了 gem 'resque_mailer'、'redis' 和 'resque' 并通过bundle install
命令安装了它们。我的邮件看起来像:
class Contact < ActionMailer::Base
include Resque::Mailer
default from: "<private>"
def contact(email, bandName, respondMail, message)
@message = message
@respondMail = respondMail
@bandName = bandName
mail(:to => email,
:subject => "subject")
end
end
发送邮件的 Controller-Call 如下所示:
Contact.contact(band.email, band.name, params[:respondMail].to_s, params[:message].to_s).deliver
如果我现在尝试异步发送邮件,我会收到以下由“联系人”调用引起的错误:
Timed out connecting to Redis on 127.0.0.1:6379
不幸的是,我不知道如何解决这个问题。有人可以告诉我异步发送邮件必须采取哪些步骤吗?如果可能,不应该有额外的数据库列。