これについて他の質問を見たことがありますが、確認しました。配達を2回呼び出すことはありません。
これは私のメーラーです
class Suggestion < ActionMailer::Base
default from: "me@myapp.com"
def send_suggest(subject, body, sender, ref)
@sender = sender
@body = body
@ref =ref
mail(:to => "mail@myapp.com", :subject => "#{subject} from #{sender}" )
end
end
これは提案コントローラーから送信されます
def create
if (!current_user.nil?)
sender = current_user.email
end
subject = params[:subject]
body = params[:description]
Suggestion.delay.send_suggest(subject, body, sender, request.referer)
respond_to do |format|
format.js { render :nothing => true }
end
end
ご覧のdelay
とおり、一度呼び出されます。フォアマンで、ワーカーがメールを処理していることがわかります。
これをさらに調査するために..私はに変更delay
しましたdelay(queue: "Suggestions", priority: 20, run_at: 5.minutes.from_now)
そして5分後、私は2通のメールを受け取ります。そのため、メールの送信が遅れます。しかし、それを2回送信します。電子メールは2回送信されます。なぜですか?