У меня есть скрипт, который вызывает тестовый API Facebook для автоматизации создания тестовой учетной записи. Через, казалось бы, случайный интервал, от 50 до 6000 запросов, я получаю исключение, которое не перехватывается. Я не знаю, как выяснить, в чем заключается ошибка, поэтому я начну с соответствующего кода здесь.
Я не использую библиотеку URI, потому что ключи facebook имеют символ канала, который разрывает URI.parse для ruby 1.8.7.
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
Код будет работать некоторое время, но всегда неизбежно сообщает следующее:
в rescue in request_wrapper': undefined method
- @ 'для ноля: NilClass
(NoMethodError) * +1010 *
Кто-нибудь когда-либо видел этот неопределенный метод '- @' раньше? Опять же, это происходит очень периодически, но это была настоящая бельма на моей стороне. Он всегда указывает на строку в коде, где я вызываю оболочку запроса.
Спасибо, что заглянули.