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 ),他们就会自动启动。