def run(self): asyncio.set_event_loop(asyncio.new_event_loop()) tornado.platform.asyncio.AsyncIOMainLoop().install() #~ tornado.autoreload.start() #~ tornado.autoreload.watch( sys.argv[0] ) app=tornado.web.Application([ (r'/ws', WebSocketHandler,dict(instance=self.instance)), (r'/_/(?P<url>.+)', ProxyHandler,dict(instance=self.instance)), (r'/guy.js', GuyJSHandler,dict(instance=self.instance)), (r'/(?P<page>[^/]+)/guy.js', GuyJSHandler,dict(instance=self.instance)), (r'/(?P<page>[^\\.]*)', MainHandler,dict(instance=self.instance)), (r'/(.*)', tornado.web.StaticFileHandler, {'path': os.path.join( pathToData(), FOLDERSTATIC) }) ]) app.listen(self.port,address=self.host) self.loop=asyncio.get_event_loop() async def _waitExit(): while self._exit==False: await asyncio.sleep(0.1) self._exit=False self.loop.run_until_complete(_waitExit()) # gracefull death ## tasks = asyncio.all_tasks(self.loop) #py37 tasks = asyncio.Task.all_tasks(self.loop) #py35 for task in tasks: task.cancel() try: self.loop.run_until_complete(asyncio.gather(*tasks)) except concurrent.futures._base.CancelledError: pass
def run(self): statics = os.path.join(self.instance._folder, FOLDERSTATIC) asyncio.set_event_loop(asyncio.new_event_loop()) tornado.platform.asyncio.AsyncIOMainLoop().install() if self.autoreload: print("**AUTORELOAD**") tornado.autoreload.start() tornado.autoreload.watch(sys.argv[0]) if os.path.isdir(statics): for p in os.listdir(statics): tornado.autoreload.watch( os.path.abspath(os.path.join(statics, p))) app = tornado.web.Application([ (r'/_/(?P<url>.+)', ProxyHandler, dict(instance=self.instance)), (r'/(?P<id>[^/]+)-ws', WebSocketHandler, dict(instance=self.instance)), (r'/(?P<id>[^/]+)-js', GuyJSHandler, dict(instance=self.instance)), (r'/(?P<page>[^\.]*)', MainHandler, dict(instance=self.instance)), (r'/(.*)', tornado.web.StaticFileHandler, dict(path=statics)) ]) app.listen(self.port, address=self.host) self.loop = asyncio.get_event_loop() async def _waitExit(): while self._exit == False: await asyncio.sleep(0.1) self._exit = False self.loop.run_until_complete(_waitExit()) # gracefull death try: tasks = asyncio.all_tasks(self.loop) #py37 except: tasks = asyncio.Task.all_tasks(self.loop) #py35 for task in tasks: task.cancel() try: self.loop.run_until_complete(asyncio.gather(*tasks)) except concurrent.futures._base.CancelledError: pass