• tornado框架的简单实用


    一.安装模块

    pip3 install tornado

    二.简单的起服务的方法

    import json, datetime
    from tornado.web import RequestHandler, Application
    from tornado.ioloop import IOLoop
    from tornado.httpserver import HTTPServer
    from tornado.options import define, options
    # 异步
    import tornado.gen
    
    # 定义全局变量
    define("port", default=9631)
    
    
    class getTest(RequestHandler):
        executor = ThreadPoolExecutor(200)  #200连接数
        @run_on_executor #并发
        def get(self):
            # logDebug("shoppingCart","get:test请求成功")
            return self.write(json.dumps({"code": 200, "message": "请求成功"}, ensure_ascii=False))
    
    
    class MainHandler(tornado.web.RequestHandler):
        @tornado.gen.coroutine
        def head(self, *args, **kwargs):
            self.write((json.dumps({"Test": "Success"})))
    
    
    if __name__ == '__main__':
        options.parse_command_line()
        # 创建一个项目应用,接入web服务器
        app = Application([
            (r"/test", getTest),  # 路由名称  ,getTest 类名
            (r"/checkhead", MainHandler),  # 健康监测一般公司都要加的哦,写法也是固定的
    
        ],
            # 也就是需要保证在fork子进程之前IOLoop是未被初始化的。
            # autoreload=False,
            # debug=False,
            settings={
            }
        )
        print('%s--tornado服务启动' % datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
        # 开始监听端口,提供服务
        http_server = HTTPServer(app)
        http_server.bind((options.port))
        http_server.start()  # 默认参数1 启动一个进程
        # start(num) num<=0 按照当前os cpu核心数量 进行 进程启动 fork
        # num>1 表示通过fork 启动多个子进程
        # 在启动IOLoop之前通过start函数设置进程数量,如果设置为0表示每个CPU都启动一个进程。
    
        IOLoop.current().start()
    
  • 相关阅读:
    IO
    File
    jdbc
    HashMap
    网络通信
    lambda
    Queue
    反射
    Stack
    AC自动机题目选讲
  • 原文地址:https://www.cnblogs.com/pythonywy/p/12111210.html
Copyright © 2020-2023  润新知