頻繁にSystemExit RubyがHTTP通話
-
08-06-2019 - |
質問
僕のRuby on RailsのサイトがHTTP通話を外部のウェブサービスです。
回程度の日を取得しまSystemExit(stacktrace下記エラーメールが電話でのサービスとの通信に失敗しています。だって同じクエリを自分の敷地のひととき以降で動作します。で起きてから行ないましたライブといった運ミネラルウォーターなどが原因となるのです。
Rubyはバージョン1.8.6、およびレールはバージョン1.2.6.
誰もこの問題なのか。
これらのエラーは、stacktrace.
は、SystemExit発生した /usr/local/lib/ruby/gems/1.8/gems/レール-1.2.6/lib/fcgi_handler.rb116: exit' /usr/local/lib/ruby/gems/1.8/gems/レール-1.2.6/lib/fcgi_handler.rb116: exit_now_handler' /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/inflector.rb:250: to_proc'/usr/local/lib/ruby/1.8/net/プロトコルです。rb133:コール' /usr/local/lib/ruby/1.8/net/プロトコルです。rb133:sysread' /usr/local/lib/ruby/1.8/net/プロトコルです。rb133:rbuf_fill' /usr/local/lib/ruby/1.8/タイムアウト.rb:56:タイムアウト時間の設定' /usr/local/lib/ruby/1.8/タイムアウト.rb:76:タイムアウト時間の設定' /usr/local/lib/ruby/1.8/net/プロトコルです。rb132:rbuf_fill' /usr/local/lib/ruby/1.8/net/プロトコルです。rb116:readuntil' /usr/local/lib/ruby/1.8/net/プロトコルです。rb126:readline' /usr/local/lib/ruby/1.8/com/http.rb2017年:read_status_line' /usr/local/lib/ruby/1.8/com/http.rb:2006年にread_new' /usr/local/lib/ruby/1.8/com/http.rb1047:申請" /usr/local/lib/ruby/1.8/com/http.rb945:request_get' /usr/local/lib/ruby/1.8/com/http.rb:380:get_response' /usr/local/lib/ruby/1.8/com/http.rb543:スタ /usr/local/lib/ruby/1.8/com/http.rb379:get_response'
解決
使用fcgi Rubyはかなりばらついているバギー.
実質的にはみんなに移転 Mongrel このため、お勧めします。についても同様とする。
他のヒント
で少し初めてFCGIものだと思いFCGIプロセスを投げるように、SystemExit場合、スレッドがするのみです。このウェブサービスな対応では遅いのでDNSクエリ。一部のgoogleの結果同様のエラーのPythonとFCGIで移動mongrelうにするのも良いだろう。 このポスト 私の参照を使って設定mongrel、まだまだご覧に戻ります。
Iを取得するために使用されるこれらのすべての時間Apache1/fastcgi.いよfastcgi掛け前にルビが行われます。
への切り替えmongrelは最初のステップがあります。うに淘汰されたウェブサービスからライブのページからのレール.レールはスレッドセーフではありません.数の同時接続を必要とします数mongrels(又は旅客のプロセス)をクラスター
持っていればmongrel、誰かにアクセスページ、webサービスが10秒の時間は、毎願ウェブサイトのタイムアウト。最新された内容を見るには英語版でのサイクルを通じておmongrels盲目的なのですmongrels、その他の要求にタイムアウト.
何でもできるunpredictably遅いニーズが発生するジョブキューに挿入します最初のヒットを/slow/アクションに追加し、ジョブのキューおよび/slow/アクションを続けており爽やかな通のページを更新またはクエリーによajaxまでの仕事が終わった後、お客様の結果から、ジョブキューに挿入しますあジョブキューのためのレールは現在、最も古いところも広く使われているのは BackgroundRB.
他の代替によっては、自然のアプリは、淘汰されるサービス毎N分cron、キャッシュのデータを現地にてライブページから読み取られます。
もしくは 旅客.こやかに溶液のApache/nginx+Mongrel.