2

私は1つのレールプロジェクトと2つのマッシングを持っています。1 つは Ubuntu 10.04 を実行しており、もう 1 つは 12.04 ベータ版を実行しています。私は 'fb_graph' gem を 10.04 マシンで使用していますが、すべて正常に動作しますが、12.04 マシンで使用すると次のようになります。

me = FbGraph::User.me(token).fetch

私は得る

HTTPClient::ConnectTimeoutError: execution expired
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient/session.rb:300:in `connect'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient/session.rb:300:in `ssl_connect'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient/session.rb:739:in `block in connect'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient/session.rb:731:in `connect'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient/session.rb:594:in `query'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient/session.rb:161:in `query'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient.rb:1060:in `do_get_block'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient.rb:869:in `block in do_request'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient.rb:956:in `protect_keep_alive_disconnected'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient.rb:868:in `do_request'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient.rb:756:in `request'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/httpclient-2.2.4/lib/httpclient.rb:661:in `get'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:49:in `block in get'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:122:in `handle_response'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:48:in `get'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/fb_graph-2.4.10/lib/fb_graph/node.rb:18:in `fetch'
from (irb):10
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/railties-3.2.0/lib/rails/commands/console.rb:47:in `start'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/railties-3.2.0/lib/rails/commands/console.rb:8:in `start'
from /home/jan/.rvm/gems/ruby-1.9.2-p290@ece/gems/railties-3.2.0/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

なぜこれが起こるのか、どうすれば解決できるのかわかりません。何か案は?ありがとう!

1月

4

2 に答える 2

2

発生する可能性のある理由は、マシンのハードウェア パフォーマンスとネットワーク パフォーマンスです。

数回やり直してください。ネットワークがルーティング情報をロードするのに時間がかかる場合がありますが、一度ロードされると、次回は高速になります。これは本番環境での適切な解決策ではないかもしれませんが、問題がネットワーク ルーティングを更新しているかどうかを診断できます。

これは、真のネットワーク パフォーマンスの問題である可能性があります。ネットワークを調整できない場合、それは役に立たないかもしれません。

再試行が役立つ場合は、コードに再試行ループを配置できます。

(0..2).each do
  begin
    ... #your code goes here
    break
  rescue HTTPClient::ConnectTimeoutError
  end
end
于 2012-04-11T13:07:05.807 に答える
0

サーバーとFBの間でHTTPリクエストがタイムアウトしています。HTTPクライアントのタイムアウトオプションを構成する方法の説明については、このgithubの問題を参照してください。

于 2012-04-11T12:59:06.263 に答える