在Ruby on Rails中,不干扰进程的情况下发送后台电子邮件的最佳方法是什么?

3

我正在使用Rails 4

我使用线程发送电子邮件。有时,在发送电子邮件后,线程会导致网站崩溃。

最好的执行方式是什么?

感谢任何帮助。

谢谢


1
请查看以下链接:http://blog.remarkablelabs.com/2013/01/using-sidekiq-to-send-emails-asynchronously 和 https://github.com/zapnap/resque_mailer - Bachan Smruty
1个回答

2
发送电子邮件有几个选项。如果您没有要发送的许多电子邮件,则使用delayed_job gem。否则,请使用redis和resque gem。
在延迟工作中,https://github.com/collectiveidea/delayed_job在发送电子邮件时,它将锁定您的数据库。在生产模式下,如果您有大量电子邮件,可能会导致性能问题。但对于小型应用程序来说,这很好且易于实现。
Redis和resque是后台作业的最佳选择之一(https://github.com/resque/resque),因为它更可靠且易于实现。而且它正在redish上运行。因此,您需要承担运行新的redish服务器的开销。您还可以查看awesome railscast视频(http://railscasts.com/episodes/271-resque)。
还有其他选项,例如sidekiq,sidekiq也在redish之上运行。根据您的要求随意使用其中任何一个。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接