繁体   English   中英

如何使用Event Machine异步处理ruby post请求

[英]How to handle ruby post requests asynchronously with eventmachine

在Rails应用程序中的请求过程中,我想将数据发布到另一台服务器并完成原始请求,而不必等待外部发布解决。 我有以下正确发布的代码,但仍继续等待发布完成。 我试过将EventMachine.stop callback之外,但这只是通过调用errback结束一切。 我该怎么办?

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。 如果有更好的解决方案,我会全力以赴。

有一个简单的解决方案,就是创建一个新线程并完成工作,一个可以(或不可以)帮助您正确执行此操作的库是https://github.com/tra/spawn 我从未亲自使用过它,但我认为它可能很适合您的需求。

我喜欢Eventmachine,并在我的大多数项目(工作或个人项目)中使用它,但要使其与Rails一起使用它还需要做更多的工作,您仍然需要非常小心使用的库以及如何不阻塞反应堆。

请注意,如果进行任何阻塞操作,也需要小心谨慎,但是当今大多数库都构建为不会阻塞解释器(至少在1.9中)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM