私は 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
メールを非同期で送信しようとすると、「contact」呼び出しが原因で次のエラーが発生します。
Timed out connecting to Redis on 127.0.0.1:6379
残念ながら、これを解決する方法がわかりません。メールを非同期で送信するために必要な手順を教えてください。可能であれば、余分なデータベース列はありません。