不知道是不是我代码写的有问题,能支持的并发量并不高。
参考: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/
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/