2011-08-31 5 views
0

레일 애플리케이션의 요청 과정에서 데이터를 다른 서버에 게시하고 해결하기 위해 외부 게시물을 기다리지 않고도 원래 요청을 완료하고 싶습니다. 나는 다음 코드를 적절히 게시하지만 계속 이동하기 전에 게시물이 끝날 때까지 기다린다. callback 외부로 EventMachine.stop을 이동 시키려고 시도했지만, 그저 errback을 호출하여 모든 것을 끝냅니다. 나는 무엇을해야합니까?ruby ​​post 요청을 이벤트 머신과 비동기 적으로 처리하는 방법

EventMachine.run { 
    http = EventMachine::HttpRequest.new(url).post :body => {body} 
    http.errback { p 'Uh oh'; EM.stop } 
    http.callback { 
     p http.response 
     EventMachine.stop 
    } 
    } 

편집 : 나는 이것을 위해 eventmachine과 결혼하지 않았습니다. 더 나은 해결책이 있다면 나는 모든 귀입니다.

답변

0

그냥 새 스레드를 만들고 작업을 수행하는 간단한 솔루션이 있습니다.이 작업을 수행하는 데 도움이되거나 도움이되지 않는 라이브러리는 https://github.com/tra/spawn입니다. 본인은 본인이 직접 사용한 적이 없지만 귀하의 필요에 맞는 것으로 생각합니다.

Eventmachine을 좋아하고 내 프로젝트 (작업 또는 개인)의 대부분에서 사용하지만 레일과 함께 작동하려면 더 많은 작업이 필요하며 사용중인 라이브러리와 차단하지 않는 방법에 관해서도 신중해야합니다. 반응기.

차단하는 모든 작업을 수행하려면 트레드를주의해야하지만 현재 대부분의 라이브러리는 인터프리터를 차단하지 않도록 제작되었습니다 (최소 1.9)

관련 문제