Tornado高并发处理方法实例代码

本文主要分享的是一则关于Tornado高并发处理方法的实例,具体如下:

#!/bin/env python

# -*- coding:utf-8 -*-

import tornado.httpserver

import tornado.ioloop

import tornado.options

import tornado.web

import tornado.gen

from tornado.concurrent import run_on_executor

from concurrent.futures import ThreadPoolExecutor

import time

from tornado.options import define, options

define("port", default=8000, help="run on the given port", type=int)

class SleepHandler(tornado.web.RequestHandler):

executor = ThreadPoolExecutor(2)

@tornado.web.asynchronous

@tornado.gen.coroutine

def get(self):

# 假如你执行的异步会返回值被继续调用可以这样(只是为了演示),否则直接yield就行

res = yield self.sleep()

self.write("when i sleep %s s" % res)

self.finish()

@run_on_executor

def sleep(self):

time.sleep(5)

return 5

class JustNowHandler(tornado.web.RequestHandler):

def get(self):

self.write("i hope just now see you")

if __name__ == "__main__":

tornado.options.parse_command_line()

app = tornado.web.Application(handlers=[

(r"/sleep", SleepHandler), (r"/justnow", JustNowHandler)])

http_server = tornado.httpserver.HTTPServer(app)

http_server.listen(options.port)

tornado.ioloop.IOLoop.instance().start()

总结

以上是 Tornado高并发处理方法实例代码 的全部内容, 来源链接: utcz.com/z/333328.html

回到顶部