Торнадо: поддержка нескольких приложений при использовании нескольких процессов? (ПРИМЕЧАНИЕ: несколько приложений) - PullRequest
0 голосов
/ 13 октября 2018

Вот мой код.

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. Что мне следует изменить в моих кодах?

1 Ответ

0 голосов
/ 13 октября 2018

Для поддержки нескольких Applications в многопроцессорном режиме необходимо использовать «расширенный» режим с методом 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, затем создайте серверы и добавьте к ним сокеты.

...