Ruby on Rails中,能否用Thread.new实现长尾词发送电子邮件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计310个文字,预计阅读时间需要2分钟。
在发送用户注册通知时,我使用了`ruby 1.8.7`和`rails 2.3.2`版本的电子邮件功能。通过`Thread.new`,我启动了一个新线程来调用`UserMailer.deliver_signup_notification(用户)`。这种方法利用了Ruby的绿色线程,使得操作不会阻塞主程序,从而提高了性能。此外,也可以使用`UserMailer.deli`来实现类似功能。
我一直在发送关于我的应用程序的电子邮件( ruby 1.8.7,rails 2.3.2)Thread.new {UserMailer.deliver_signup_notification(用户)}
由于ruby使用绿色线程,这样做有任何性能优势,或者我可以使用
UserMailer.deliver_signup_notification(用户)
?
谢谢
您不应该在请求/响应周期中启动线程.你根本不应该启动线程,除非你可以从创建到加入观看它们,即使这样,它也很少值得它创造的麻烦.
Rails不是线程安全的,并不意味着来自您的控制器操作.只是因为Rails 2.3只是调度是线程安全的,并且只有你在environment.rb中用config.threadsafe!打开它.
This article更详细地解释.如果要异步发送消息,请使用BackgroundRb或其模拟.
本文共计310个文字,预计阅读时间需要2分钟。
在发送用户注册通知时,我使用了`ruby 1.8.7`和`rails 2.3.2`版本的电子邮件功能。通过`Thread.new`,我启动了一个新线程来调用`UserMailer.deliver_signup_notification(用户)`。这种方法利用了Ruby的绿色线程,使得操作不会阻塞主程序,从而提高了性能。此外,也可以使用`UserMailer.deli`来实现类似功能。
我一直在发送关于我的应用程序的电子邮件( ruby 1.8.7,rails 2.3.2)Thread.new {UserMailer.deliver_signup_notification(用户)}
由于ruby使用绿色线程,这样做有任何性能优势,或者我可以使用
UserMailer.deliver_signup_notification(用户)
?
谢谢
您不应该在请求/响应周期中启动线程.你根本不应该启动线程,除非你可以从创建到加入观看它们,即使这样,它也很少值得它创造的麻烦.
Rails不是线程安全的,并不意味着来自您的控制器操作.只是因为Rails 2.3只是调度是线程安全的,并且只有你在environment.rb中用config.threadsafe!打开它.
This article更详细地解释.如果要异步发送消息,请使用BackgroundRb或其模拟.

