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
from tornado.concurrent import run_on_executor
from concurrent.futures import ThreadPoolExecutor
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()