Ruby on rails Rails:延迟的作业邮件未发送

Ruby on rails Rails:延迟的作业邮件未发送,ruby-on-rails,delayed-job,Ruby On Rails,Delayed Job,我正在尝试使用Rails3.2中的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

我正在尝试使用Rails3.2中的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
def发送欢迎电子邮件

#UserMailer.欢迎(自我)发送电子邮件您是否至少开始了一个
延迟工作
员工

rake jobs:work
实际上,当您对对象调用
delay
时,您只是在对作业排队。这意味着将在
DelayedJob
表中创建一个新条目,该表包含与作业关联的所有元数据

因此,您仍然需要能够浏览所有
DelayedJob
条目并逐个运行它们的东西,这就是上面显示的rake任务(worker)


对于生产,这取决于您将应用程序部署到何处。在Heroku上,您只需指定需要多少工人(
Worker dynos
),他们就会自动启动

不,我没有。所以我有责任这么做?我如何让它在生产中运行而不触发它?你能解释一下吗?谢谢你负责开始你的工作。您是否使用Heroku进行生产?另请参阅自述文件中的“运行作业”部分@AmokraneChentir是的,我使用Heroku进行生产production@Michael好的,请看我的编辑。您只需在“资源”页面上指定所需的工作人员数量(可以从1开始)。