2013-02-20 2 views
0

Rails 3.1.3, рубинового 1.9.3p374Рельсы: тайм-аут после выполнения HTTP POST из контроллера

Я пытаюсь POST от контроллера (который получает данные через POST от клиента, а затем делает некоторую обработку первой) к другому контроллера в приложении, и я получаю Timeout :: Error.

Я попытался с помощью Net :: HTTP (длинную форму ниже, также сделал ярлык формы):

uri = URI.parse(credit_payments_url) 
http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Post.new(uri.request_uri) 
auth_token = params[:authenticity_token] 
request.set_form_data({:cc => "test", :authenticity_token => auth_token }) 
response = http.request(request) 

И HTTParty:

auth_token = params[:authenticity_token] 
HTTParty.post(credit_payments_url, :body => {:cc => "test", :authenticity_token => auth_token}) 

В обоих случаях, я получаю тайм-аута :: Ошибка, а также увидеть это на выходе сервера:

Started POST "/payments/credit" for 127.0.0.1 at 2013-02-19 17:39:35 -0600 
    Processing by PaymentsController#credit as HTML 
    Parameters: {"cc"=>"test", "authenticity_token"=>"px+YzdbEfC5p2i3e5yjNT4EQy4WMA9aEWY/v2tfdFhA="} 
WARNING: Can't verify CSRF token authenticity 

credit_payments_url правильный URL и существует соот- ветствовать пологий маршрут. Я получаю предупреждение CSRF, поэтому добавил: authenticity_token из исходного запроса, но предупреждение CSRF все еще появляется. Я не уверен, что это имеет какое-то отношение к тайм-ауту POST.

Я чувствую, что может возникнуть проблема с базовой сетью или конфигурацией, из-за которой POST не работает, но не может сказать, что это такое. Есть идеи?

ответ

0

Первое. Возможно, у вас есть только один рабочий, занятый в этом запросе, и поэтому не может ответить на второй запрос. Попробуйте сделать сообщение внутри потока или использовать более одного рабочего.

Второй - Почему вы отправляете в приложение непосредственно? Почему бы вам не высушить код, извлечь необходимый код из другого действия в метод и вызвать его в обоих местах?

 Смежные вопросы

  • Нет связанных вопросов^_^