当试图从龙卷风GET方法获取数据时,如果我们需要返回一个结果,那么调用必须是一个阻塞调用,它将一个值返回给客户端(如果我们从某个第三方获取数据,结果变得更加延迟,并且呼叫在此之前被阻止)。龙卷风 - 非阻塞调用返回GET值?
有没有一种方法可以将处理后的值返回给客户端,并且在Tornado中仍然有非阻塞调用?
当试图从龙卷风GET方法获取数据时,如果我们需要返回一个结果,那么调用必须是一个阻塞调用,它将一个值返回给客户端(如果我们从某个第三方获取数据,结果变得更加延迟,并且呼叫在此之前被阻止)。龙卷风 - 非阻塞调用返回GET值?
有没有一种方法可以将处理后的值返回给客户端,并且在Tornado中仍然有非阻塞调用?
正如Sushant Khurana所建议的那样,您可以“修补”urllib2。幸运的是,你不必自己动手:someone else has done it for you!
退房eventlet:http://eventlet.net/doc/index.html
它基本上实现了socket
,urllib2
,asyncore
等 看看它的文档和this blog post自己的异步版本。
我从来没有用过它,但它看起来很有前途!
很抱歉为了接受Ibolla。我认为这可能是总结它的最佳解决方案。 –
博客文章链接已损坏 – 2015-09-09 05:26:02
刚刚意识到我的代码使用的是使用urllib2的amazon产品api包装器,因此调用都是阻塞的。任何替代品。我不想因为这个原因重新编写包装。 –
是猴子修补urllib解决这个问题? –