Tornado:使用多进程时支持多个应用程序吗?(注意:多个应用程序)
Tornado : support multiple Applications when using multi-process?(NOTE:multiple Applications)
这是我的代码。
application1 = web.Application([
(r"/", MainPageHandler),
])
http_server = httpserver.HTTPServer(application1)
http_server.listen(8080)
application2 = web.Application([
(r"/appli2", MainPageHandler2),
])
http_server2 = httpserver.HTTPServer(application2)
http_server2.listen(8081)
ioloop.IOLoop.instance().start()
我想像https://www.tornadoweb.org/en/stable/httpserver.html一样使用多进程。
我应该修改我的代码什么?
要使用多进程模式支持多个 Applications
,您必须使用 "advanced" 模式和 add_sockets
方法:
sockets1 = tornado.netutil.bind_sockets(8080)
sockets2 = tornado.netutil.bind_sockets(8081)
tornado.process.fork_processes(0)
server1 = HTTPServer(app1)
server2 = HTTPServer(app2)
server1.add_sockets(sockets1)
server2.add_sockets(sockets2)
IOLoop.current().start()
在调用 fork_processes
之前绑定所有套接字(并且什么都不做),然后创建服务器并将套接字添加到它们。
这是我的代码。
application1 = web.Application([
(r"/", MainPageHandler),
])
http_server = httpserver.HTTPServer(application1)
http_server.listen(8080)
application2 = web.Application([
(r"/appli2", MainPageHandler2),
])
http_server2 = httpserver.HTTPServer(application2)
http_server2.listen(8081)
ioloop.IOLoop.instance().start()
我想像https://www.tornadoweb.org/en/stable/httpserver.html一样使用多进程。 我应该修改我的代码什么?
要使用多进程模式支持多个 Applications
,您必须使用 "advanced" 模式和 add_sockets
方法:
sockets1 = tornado.netutil.bind_sockets(8080)
sockets2 = tornado.netutil.bind_sockets(8081)
tornado.process.fork_processes(0)
server1 = HTTPServer(app1)
server2 = HTTPServer(app2)
server1.add_sockets(sockets1)
server2.add_sockets(sockets2)
IOLoop.current().start()
在调用 fork_processes
之前绑定所有套接字(并且什么都不做),然后创建服务器并将套接字添加到它们。