2012-04-13 4 views
0

레일스 어플리케이션에서 다른 서버로 오히려 자주 POST 할 필요가 있습니다. 캐치는 내가 응답을 필요로하지 않는다는 것이다. 지연된 작업 또는 이벤트 시스템에 들어 가지 않고도 요청을 보내고 응답을 기다리지 않고 연결을 끊음으로써 작업 속도를 높일 수있는 방법이 있습니까? 그것들이 유일한 선택이라면, 나는 그것을 다룰 수는 있지만 인생을 단순하게 만들지는 않을 것입니다. 당신이 전화를 걸기 전에 Net::HTTP 개체를 인스턴스화하는 경우레일 비 블로킹 포스트

remoteAddress = 'http://remote.server.address/' 

params = { 
    'a' => a, 
    'b' => b } 

url = URI.parse(remoteAddress) 
Net::HTTP.post_form(url, params) 
+0

볼 http://stackoverflow.com/questions/6643964/asynchronous-http-request-in- : 여기

은 URL 및 쿼리 문자열 형식의 POST 데이터의 개별 부품을 사용하는 예제 루비 –

답변

3

, 당신은 결과 시간 초과 : 오류 예외를 잡을 후 아주 적은 수의 read_timeout 속성을 설정하고 있습니다 : 여기

내가 지금 가지고있는 무엇 그리고 계속 전진해라.

endpoint = Net::HTTP.new(host, port) 
endpoint.read_timeout = 0.001 
endpoint.post(path, params_as_query_string) rescue Timeout::Error 
관련 문제