ruby-on-rails - 書き方 - ruby javascript 呼び出し




HTTPコールを行うときにRubyで頻繁にSystemExitを実行する (3)

Rubyでfcgiを使用することは非常にバグが多いことが知られています。

実際には誰もがこのような理由でMongrelに引っ越しました。同じことをお勧めします。

Ruby on Rails Webサイトでは、外部WebサービスへのHTTP呼び出しを行います。

1日に約1回、サービスへの呼び出しが失敗したSystemExit(以下のスタックトレース)エラー電子メールが表示されます。 私はその後、私のサイトの瞬間に正確に同じクエリを試しても、それはうまく動作します。 サイトがライブになってから起こっていて、私はそれが何を引き起こしたかを追跡する運がなかった。

Rubyはバージョン1.8.6、レールはバージョン1.2.6です。

誰にもこの問題がありますか?

これはエラーとスタックトレースです。

A SystemExitが発生しました/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/fcgi_handler.rb:116:in exit '/usr/local/lib/ruby/gems/1.8/gems/ rails-1.2.6 / lib / fcgi_handler.rb:116:exit_now_handler '/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/inflector.rb:250:in to_proc '/usr/local/lib/ruby/1.8/net/protocol.rb:133:in call' /usr/local/lib/ruby/1.8/net/protocol.rb:133:in sysread '/ usr / local / lib / ruby​​ / 1.8 / net / protocol.rb:133:rbuf_fill '/usr/local/lib/ruby/1.8/timeout.rb:56:inタイムアウト' /usr/local/lib/ruby/1.8/timeoutにあります。 rb:76:タイムアウトで '/usr/local/lib/ruby/1.8/net/protocol.rb:132:in rbuf_fill' /usr/local/lib/ruby/1.8/net/protocol.rb:116:in readuntil '/usr/local/lib/ruby/1.8/net/protocol.rb:126:in readline' /usr/local/lib/ruby/1.8/net/http.rb:2017:in read_status_line '/ usr / local / lib / ruby​​ / 1.8 / net / http.rb:2006:read_new '/usr/local/lib/ruby/1.8/net/http.rb:1047:inリクエスト' /usr/local/lib/ruby/1.8/ net / http.rb:945:request_get '/usr/local/lib/ruby/1.8/net/http.rb:380:i n get_response '/usr/local/lib/ruby/1.8/net/http.rb:543:in start' /usr/local/lib/ruby/1.8/net/http.rb:379:in get_response '


私は乗客も見ていきます。 Apache / nginx + Mongrelの従来のソリューションよりも簡単に進めることができます。


私はFCGIを使用して以来、しばらくしていますが、スレッドが長引くとFCGIプロセスがSystemExitをスローする可能性があります。 これは、Webサービスが応答しないか、遅いDNSクエリであってもかまいません。 Googleの結果にはPythonやFCGIと同様のエラーが表示されるので、mongrelに移行することは良い考えです。 この記事はmongrelをセットアップするのに使ったリファレンスですが、私はまだそれを参照しています。





crash