一.安装模块
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()