Ruby on rails Rails:延迟的作业邮件未发送
我正在尝试使用Rails3.2中的delayed_job gem在后台发送邮件 我安装了宝石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
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开始)。