试用了tornado

不知道是不是我代码写的有问题,能支持的并发量并不高。

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/

猜你喜欢

转载自san-yun.iteye.com/blog/1617459
今日推荐