2015-10-02 2 views
1

Я следующий код, который я имею выписку из ovh-rest драгоценного камня:Net :: HTTP-запрос слишком медленный?

method = :get 
@api_url = "https://api.ovh.com/1.0" 
@api_key, @api_secret, @consumer_key = "123456789", "abcdef", "ghijkl" 
endpoint = "/ip/123.456.678/" 
url = @api_url + endpoint 
uri = URI.parse(url) 
body = nil 
ts = Time.now.to_i.to_s 
sig = "$1$" + Digest::SHA1.hexdigest("#{@api_secret}+#{@consumer_key}+#{method.upcase}+#{url}+#{body}+#{ts}") 
request_uri = uri.path 
request_uri += '?' + uri.query if uri.query 
request = Net::HTTP.const_get(method.capitalize).new(request_uri) 
request["X-Ovh-Application"] = @api_key 
request["X-Ovh-Consumer"] = @consumer_key 
request["X-Ovh-Timestamp"] = ts 
request["X-Ovh-Signature"] = sig 
request["Content-type"] = "application/json" 
http = Net::HTTP.new(uri.host, uri.port) 
http.use_ssl = true 
response = http.request(request) 
JSON.parse(response.body) 

Если я делаю все шаг за шагом Я следующее сообщение об ошибке:

{ 
    "errorCode": "QUERY_TIME_OUT", 
    "httpCode": "400 Bad Request", 
    "message": "Query out of time" 
} 

Но если я подожду некоторые секунд (переменная длительность), прежде чем делать response = http.request(request), у меня успешный запрос:

{ 
    "organisationId": "nil", 
    "country": "myCountry", 
    "routedTo": { 
    "serviceName": "somename" 
    }, 
    "ip": "123.456.678/32", 
    "canBeTerminated": true, 
    "type": "failover", 
    "description": "nil" 
} 

Я не знаю, если проблема исходит от моего с ервере (процесс рубиновый с высокой для быстрого реагирования), или если он приходит откуда-то еще вокруг ..

Важное примечание:

Этот код работает как шарм, но несколько дней назад .. Прекратите работать.

+0

Вместо ошибки с кодом Ruby я сначала рассмотрел ошибку 400. Насколько стабильна связь между Ови и собой. Есть ли проблема с кешем на сервере или в коде? Можете ли вы повторить эту ошибку по-другому? Что-то еще изменилось, что может указывать на ошибку 400. –

+0

Вопрос на месте. У меня только эта ошибка на моем сервере. Когда я пытаюсь использовать тот же код со своего компьютера, он отлично работает. Я не делал никакого нового развертывания какое-то время, и плохой переключатель (формирующий рабочий код для неработающего кода) появился из ниоткуда .. С одного дня на другой. Как я могу проверить, насколько стабильным является соединение? Что вы имеете в виду «проблема с кешем»? – BriceB

ответ

0

Это было решено на дату resynchro. Поскольку часы всех серверов одинаковые, это работает как шарм.