用Rails发送大回复

时间:2015-09-16 08:49:42

标签: ruby-on-rails-4 webserver imap

我正在实现一个带有rails后端的小型webmail,它与IMAP服务器通信。问题是,当我检索一些原始数据时,如果附件很大(甚至是6/7 mb),那么webrick发送它需要花费很多时间。

如何提高发送"大数据的性能"?有更适合的网络服务器吗?

(我还没有尝试过另一个,因为我还处于开发的早期阶段)

1 个答案:

答案 0 :(得分:1)

Webrick绝对不是最好的网络服务器。大多数Rails应用程序使用前端代理(通常是Nginx或Apache)和后端机架兼容的Web服务器(如Unicorn,Puma,Passenger等)的组合。

您可能想要做的是避免Ruby进程发送数据,否则Ruby可能必须将文件加载到内存中。例如,您可以使用send_file功能直接使用#!/usr/bin/perl use strict; use warnings; my @test1= ("Bob", "Flip", "David"); my @test2= ("Kevin", "John", "Michel"); my @test3= ("Bob", "Flip", "David"); my @test4= ("Haidi", "Grook", "Franky"); my @test5= ("Bob", "Flip", "David"); my @test6= ("Kevin", "John", "Michel"); my @test7= ("Haidi", "Grook", "Frank4"); my %arrayHash= ( "ppl1" => [@test1], "ppl2"=> [@test2], "ppl3" => [@test3], "ppl4"=> [@test4], "ppl5"=> [@test5], "ppl6"=> [@test6], "ppl7"=> [@test7] ); my %seen; foreach my $key1 (sort keys %arrayHash){ next unless @{$arrayHash{$key1}}; my @keys; if(@keys=grep{(@{$arrayHash{$key1}} ~~ @{$arrayHash{$_}} ) && ($_ ne $key1) && (not exists $seen{$key1})}sort keys %arrayHash){ unshift(@keys,$key1); print "@keys are duplicates \n"; @seen{@keys}=@keys; } } 在Rails中支持使用ppl1 ppl3 ppl5 are duplicates ppl2 ppl6 are duplicates 传递Nginx。