FacebookのテストAPIを呼び出して、テストアカウントの作成を自動化するスクリプトがあります。一見ランダムな間隔で、50リクエスト後から6000リクエストまで、キャッチされない例外が発生します。エラーが何であるかを理解する方法がわからないので、ここで関連するコードから始めます。
FacebookのキーにはRuby1.8.7のURI.parseを壊すパイプ文字が含まれているため、URIライブラリを使用していません。
require 'rubygems'
require 'net/https'
require 'json'
http = Net::HTTP.new(domain, 443)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
def request_wrapper(http, request)
retry_count = 5
begin
return http.request(request)
rescue Exception => e
retry_count--
if retry_count < 0
raise e
end
retry
end
for i in 0..500 do
request = Net::HTTP::Get.new('https://' + domain + path)
response = request_wrapper(http, request)
end
コードはしばらくの間機能しますが、常に次のことを報告します。
in
rescue in request_wrapper': undefined method
-@'for nil:NilClass(NoMethodError)
この未定義のメソッド'-@'を見たことがありますか?繰り返しますが、これは非常に断続的に発生しますが、それは私の側の本当のとげでした。これは常に、リクエストラッパーを呼び出しているコード内の行を指しています。
ご覧いただきありがとうございます。