我已经看到有关此的其他问题,但我检查了,并且我没有两次调用交付。
这是我的邮件
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 封电子邮件。所以发送电子邮件会延迟。但随后发送两次电子邮件被发送两次。知道为什么吗?