码迷,mamicode.com
首页 > 其他好文 > 详细

tornadod的异步代码

时间:2016-12-09 15:49:29      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:cat   ret   list   get   art   bin   nbsp   cut   代码   

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.httpclient
import tornado.gen
from tornado.concurrent import run_on_executor
from concurrent.futures import ThreadPoolExecutor
import time


class SleepHandler(tornado.web.RequestHandler):
    executor = ThreadPoolExecutor(2)

    @tornado.web.asynchronous
    @tornado.gen.coroutine
    def get(self):
        """
        若是要实现异步并且该请求需要等待执行结果则加入yield
        否则可以将yield去掉,程序会继续往下执行
        """
        res = yield self.sleep()
        self.write("when i sleep %s s bbb" % res)
        self.finish()

    @run_on_executor
    def sleep(self):
        time.sleep(6)
        return 6


class NormalHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("normal handler")


if __name__ == "__main__":
    app = tornado.web.Application(handlers=[
        (r"/sleep", SleepHandler),
        (r"/normal", NormalHandler),
    ])
    http_server = tornado.httpserver.HTTPServer(app)
    http_server.listen(8888)
    tornado.ioloop.IOLoop.instance().start()

 

tornadod的异步代码

标签:cat   ret   list   get   art   bin   nbsp   cut   代码   

原文地址:http://www.cnblogs.com/renfanzi/p/6149600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!