我已经看到了有关此问题的其他问题,但我查了一下,而且我没有给两次致电。
这是我的邮件
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封电子邮件。因此发送电子邮件会延迟。但然后发送两次 电子邮件发送两次。知道为什么吗?
答案 0 :(得分:0)
之前有同样的问题,发现了这个问题。这是解决方案(针对我的问题)。
检查您已经运行的延迟工作人员的数量。
ps -ef | grep delayed_job
root 18848 1 0 Aug27 ? 00:23:24 delayed_job
root 20104 1 0 Aug26 ? 00:23:54 delayed_job
root 21805 1 0 Aug27 ? 00:23:15 delayed_job
然后停止特定进程(如果调用脚本/ delayed_job停止失败)
kill -9 18848