2013-08-24 43 views
0

epoll的我正在努力讓自己在龍捲風如何使用的龍捲風

import tornado.ioloop 
import tornado.web 
from tornado.platform.epoll import EPollIOLoop 
from tornado import web, gen 

class MainHandler(tornado.web.RequestHandler): 
    @web.asynchronous 
    @gen.engine  
    def get(self): 
     self.write("Hello, world") 

application = tornado.web.Application([ 
    (r"/", MainHandler), 
]) 

if __name__ == "__main__": 
    application.listen(8888) 
    EPollIOLoop().start() 

epoll的工作,但是當我啓動程序和訪問URL本地主機:8888 /它不返回任何東西。 是我的系統不符合要求?我的linux版本是Ubuntu 12.04.1 LTS。

回答

2

只需使用tornado.ioloop.IOLoop.instance()。它爲您的平臺選擇最好的IOLoop。

if __name__ == "__main__": 
    application.listen(8888) 
    ioloop = tornado.ioloop.IOLoop.instance() 
    print ioloop # prints <tornado.platform.epoll.EPollIOLoop object at ..> 
    ioloop.start() 

你應該叫self.finish()如果你使用asynchronous裝飾:

如果這個裝飾已定,那麼響應沒有完成 方法返回時。由請求處理程序調用self.finish() 來完成HTTP請求。如果沒有這個裝飾器,當get()或post()方法返回時,自動完成請求 。

class MainHandler(tornado.web.RequestHandler): 
    @web.asynchronous 
    @gen.engine  
    def get(self): 
     self.write("Hello, world") 
     self.finish()