Ruby on rails 入门:在Rails中发送带有延迟作业的电子邮件发送电子邮件

Ruby on rails 入门:在Rails中发送带有延迟作业的电子邮件发送电子邮件,ruby-on-rails,delayed-job,Ruby On Rails,Delayed Job,我不熟悉这项工作。我正在尝试配置延迟作业以发送电子邮件。在我的模型中我有 def send_reminder_emails NsoMailer.send_reminder_emails(self) end 我在app/mailers/nso\u mailer.rb中有相应的发送提醒邮件操作,在registrations/rements\u email.html.erb中有测试邮件 我已经按照中的说明安装了延迟作业和守护进程gems。现在我的问题是如何配置作业?在这种情况下,我认

我不熟悉这项工作。我正在尝试配置延迟作业以发送电子邮件。在我的模型中我有

  def send_reminder_emails
    NsoMailer.send_reminder_emails(self)
  end
我在app/mailers/nso\u mailer.rb中有相应的发送提醒邮件操作,在registrations/rements\u email.html.erb中有测试邮件

我已经按照中的说明安装了延迟作业和守护进程gems。现在我的问题是如何配置作业?在这种情况下,我认为作业应该被延迟::job.enqueue Registrations.send\u email\u members???github wiki上似乎缺少一些文档。我知道有脚本/延迟的作业文件。我应该修改这个文件吗

如果有人能推荐一个入门页面或博客,那就太好了。我在自己的服务器(没有heroku)上运行这个,我们也有自己的SMTP服务器(因此没有sendgrid或第三方邮件服务)。邮件已在服务器上配置,我正在成功发送电子邮件。我的工作目标是每天发送一次提醒邮件


非常感谢您向正确方向提供的任何帮助或推动。

如果您希望异步调用模型上的方法,则可以执行以下操作:

model_instance.delay.send_reminder_email
如果您想直接在邮件程序上调用一个方法,那么您将执行以下操作(我假设nso_mailer.rb中定义的方法名称是remention_emails):

在我的项目中,我通常让一个服务对象处理所有通知,或者创建一个关注点来处理电子邮件的发送

Ryan Bates的Railcast标题为“服务对象”,或者阅读DHH关于使用关注点的博客文章,这是一个很好的参考资料

至于您的设置问题,如果您是通过capistrano进行部署,那么您可以在部署成功后调用
bundle exec bin/delayed_job restart
,以重新启动DJ守护程序

NsoMailer.delay.reminder_emails(model_instance)