Rails:delayed_job邮件没有发送
我正在尝试在Rails 3.2中使用delayed_job gem https://github.com/collectiveidea/delayed_job在后台发送邮件。
我安装了gem
gem 'delayed_job_active_record'
我按照指示生成了表并运行了迁移
$ rails generate delayed_job:active_record $ rake db:migrate
注意到Rails 3中有针对邮件程序的特殊说明
# without delayed_job Notifier.signup(@user).deliver # with delayed_job Notifier.delay.signup(@user)
我做到了
def send_welcome_email #UserMailer.welcome_email(self).deliver <-- original code that worked UserMailer.delay.welcome_email(self) end
但是邮件没有发送。 在我尝试使用delayed_job之前它正在工作……
有人可以为新手澄清……?
你有没有开始至少1名delayed_job
工作人员?
rake jobs:work
实际上,当你在对象上调用delay
时,你只是在排队工作。 这意味着将在DelayedJob
表中创建一个包含与作业关联的所有元数据的新条目。
所以你仍然需要能够浏览所有DelayedJob
条目并DelayedJob
运行它们的东西,那就是上面显示的rake任务(worker)。
对于生产,它取决于您部署应用程序的位置。 在Heroku上你只需要指定你需要多少工人( Worker dynos
),他们就会自动启动。