import tornado.ioloop import tornado.web import time import urllib2 import tornado.httpserver class MainHandler(tornado.web.RequestHandler): @tornado.web.asynchronous def get(self): self.doLongPolling() print 'get end' def fetchHttp(self,callback): print 'fetch' #page = urllib2.urlopen("http://163.com/") #body = page.readlines() #page.close() #print 'fetch end' callback() def doLongPolling(self): tornado.ioloop.IOLoop.instance().add_timeout(time.time() + 2, lambda:self.fetchHttp(callback=self.on_finish)) def on_finish(self): print ("inside finish....") #self.write("Long running job complete") self.finish() class Main2Handler(tornado.web.RequestHandler): def get(self): self.write('ok') print 'ok' application = tornado.web.Application([ (r"/hello", MainHandler), (r"/hello2", Main2Handler), ]) if __name__ == "__main__": http_server = tornado.httpserver.HTTPServer(application) http_server.listen(8888) tornado.ioloop.IOLoop.instance().start()
参考:http://www.litrin.net/2011/10/18/%E9%9D%9E%E9%98%BB%E5%A1%9E%E7%9A%84python-web%E6%A1%86%E6%9E%B6tornado/