0
我刚想到龙卷风和事件驱动编程的非阻塞基础设施。其实我正在写一个简单的Web应用程序,它正在访问外部Web服务的HTTP-API。我明白为什么我应该调用这个API非阻塞。但是如果我只进行第一次非阻塞呼叫,那么是否存在任何缺点,以便IOLoop可以进一步循环?Tornado Blocking Code
例如:
@tornado.web.asynchronous
def get(self):
nonblocking_call1(self._callback)
def _callback(self, response):
self.write(str(response))
self.write(str(blocking_call2()))
self.write(str(blocking_call3()))
self.finish()
与
@tornado.web.asynchronous
def get(self):
nonblocking_call1(self._nonblocking_callback1)
def _callback1(self, response):
self.write(str(response))
nonblocking_call2(self._nonblocking_callback2)
def _callback2(self, response):
self.write(str(response))
nonblocking_call3(self._nonblocking_callback3)
def _callback3(self, response):
self.write(str(response))
self.finish()