Ruby on rails 为什么在使用nginx时会超时?

Ruby on rails 为什么在使用nginx时会超时?,ruby-on-rails,ruby-on-rails-3,nginx,Ruby On Rails,Ruby On Rails 3,Nginx,我在nginx上运行rails。然后我就可以立即向所有注册用户发送电子邮件。 我确实运行了这个,但它超时了。我怎样才能解决这个问题?如何修改配置 控制器(有超过10000个用户,这意味着此邮件程序重复10000次) 然后它得到这个超时错误 连接已超时 服务器www.foooexample.com的响应时间太长。 这是我的nginx配置文件 etc/nginx/conf.d/foo.conf server { listen 80; server_name foofooexample

我在nginx上运行rails。然后我就可以立即向所有注册用户发送电子邮件。
我确实运行了这个,但它超时了。我怎样才能解决这个问题?如何修改配置

控制器(有超过10000个用户,这意味着此邮件程序重复10000次)

然后它得到这个超时错误

连接已超时

服务器www.foooexample.com的响应时间太长。

这是我的nginx配置文件

etc/nginx/conf.d/foo.conf

server {
    listen 80;
    server_name foofooexample.com;
    root /var/www/html/foo/public;
    client_max_body_size 5M;

    keepalive_timeout  1200;
    proxy_connect_timeout 1200;
    proxy_read_timeout    1200;
    proxy_send_timeout    1200;
.
.
.

正如前面提到的一条评论,您希望使用诸如之类的工具将其卸载给后台工作人员,它附带了一个
ActionMailer
扩展,用于在后台发送电子邮件

安装后,而不是

CallMailer.call_email_to(user.email, subject, body).deliver
您可以使用:

CallMailer.delay.call_email_to(user.email, subject, body)

此外,我建议您使用而不是
每个
。这是因为
each
将把所有
User
对象加载到内存中,而
find\u each
将分批加载它们。有关用法示例,请参阅链接文档。

此类任务不应在(等待的)web请求中完成。你应该在后台做这件事,有很多宝石可以这样做。@Tamer谢谢你的评论!sidekiq做的和我在控制器中做的一样吗?它正在加载所有用户并向所有用户发送消息。
CallMailer.delay.call_email_to(user.email, subject, body)