zoukankan      html  css  js  c++  java
  • tornado ThreadPoolExecutor

    import os
    import sys 
    import time
    
    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
    from tornado.options import define, options
    
    class HasBlockTaskHandler(tornado.web.RequestHandler):
        executor = ThreadPoolExecutor(20)   #起线程池,由当前RequestHandler持有
        
        @tornado.gen.coroutine
        def get(self):
            strTime = time.strftime("%Y-%m-%d %H:%M:%S")
            print "in get before block_task %s" % strTime
            result = yield self.block_task(strTime)
            print "in get after block_task"
            self.write("%s" % (result))
    
        @run_on_executor
        def block_task(self, strTime):
            print "in block_task %s" % strTime
            for i in range(1, 16):
                time.sleep(1)
                print "step %d : %s" % (i, strTime)
            return "Finish %s" % strTime
    
    if __name__ == "__main__":
        tornado.options.parse_command_line()
        app = tornado.web.Application(handlers=[(r"/sleep", HasBlockTaskHandler)], autoreload=False, debug=False)
        http_server = tornado.httpserver.HTTPServer(app)
        http_server.listen(8888)
        tornado.ioloop.IOLoop.instance().start()
  • 相关阅读:
    设置网页内容不准复制
    a标签打电话
    <base target="_blank" />
    常用sql语句 DML语句
    常用sql-----DDL语句
    php文件操作
    php格式化时间
    php 数组函数
    程序员和特种兵 几分相似几分无奈
    女码农的真实生活:程序“媛”无法卖萌
  • 原文地址:https://www.cnblogs.com/howhy/p/9627832.html
Copyright © 2011-2022 走看看