Я хочу запустить веб-сервер в Tornado
, а затем заняться другими делами. Я не смог обнаружить, как запустить веб-сервер в потоке. Вот что я попробовал:
import asyncio
import sys
from time import sleep
import tornado.ioloop
import tornado.web
port = 28130
context = 'tornado'
statemgr_url = 'http://localhost:%d/%s' %(port,context)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
def make_app():
return
if __name__ == "__main__":
# tornado.ioloop.IOLoop.current().start()
from tornado.platform.asyncio import AsyncIOMainLoop
import asyncio
def asyncListen():
app = tornado.web.Application([(r"/%s" %context, MainHandler),])
app.listen(port) # THROWS exception
AsyncIOMainLoop().install()
asyncio.get_event_loop().run_forever()
# asyncio.set_event_loop(asyncio.new_event_loop())
from threading import Thread
t = Thread(target=asyncListen) # , args=(statemgr_url, handler))
t.start()
sleep(1)
В строке, отмеченной THROWS Exception
, происходит следующее:
File "/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/events.py", line 644, in get_event_loop
% threading.current_thread().name)
RuntimeError: There is no current event loop in thread 'Thread-1'.
Итак, как можно запускать / запускать веб-сервер в неосновной сети? нить?