http_server.Application: add option to return asyncio coroutine for server start
This commit is contained in:
parent
38ab2b67e6
commit
29b5252e3e
|
@ -68,11 +68,6 @@ class Application(sanic.Sanic):
|
|||
self.add_error_handler(MissingTemplateError)
|
||||
self.add_error_handler(GenericError)
|
||||
|
||||
signal.signal(signal.SIGHUP, self.finish)
|
||||
signal.signal(signal.SIGINT, self.finish)
|
||||
signal.signal(signal.SIGQUIT, self.finish)
|
||||
signal.signal(signal.SIGTERM, self.finish)
|
||||
|
||||
## compat
|
||||
self.start = self.run
|
||||
|
||||
|
@ -143,19 +138,34 @@ class Application(sanic.Sanic):
|
|||
return handler
|
||||
|
||||
|
||||
def run(self):
|
||||
def run(self, log=False, async_server=False):
|
||||
signal.signal(signal.SIGHUP, self.finish)
|
||||
signal.signal(signal.SIGINT, self.finish)
|
||||
signal.signal(signal.SIGQUIT, self.finish)
|
||||
signal.signal(signal.SIGTERM, self.finish)
|
||||
|
||||
# register built-in middleware now so they're last in the chain
|
||||
self.add_middleware(Headers)
|
||||
|
||||
if self.cfg.access_log:
|
||||
self.add_middleware(AccessLog)
|
||||
|
||||
msg = f'Starting {self.cfg.name} at {self.cfg.listen}:{self.cfg.port}'
|
||||
if log:
|
||||
msg = f'Starting {self.cfg.name} at {self.cfg.listen}:{self.cfg.port}'
|
||||
|
||||
if self.cfg.workers > 1:
|
||||
msg += f' with {self.cfg.workers} workers'
|
||||
if self.cfg.workers > 1 and not async_server:
|
||||
msg += f' with {self.cfg.workers} workers'
|
||||
|
||||
izzylog.info(msg)
|
||||
izzylog.info(msg)
|
||||
|
||||
if async_server:
|
||||
return self.create_server(
|
||||
host = self.cfg.listen,
|
||||
port = self.cfg.port,
|
||||
access_log = False,
|
||||
debug = False,
|
||||
return_asyncio_server = True
|
||||
)
|
||||
|
||||
super().run(
|
||||
host = self.cfg.listen,
|
||||
|
@ -167,12 +177,16 @@ class Application(sanic.Sanic):
|
|||
)
|
||||
|
||||
|
||||
def run_async(self):
|
||||
return self.run(async_server=True)
|
||||
|
||||
|
||||
def finish(self, *args):
|
||||
if self.cfg.sig_handler:
|
||||
self.cfg.sig_handler(self, *self.cfg.sig_handler_args, **self.cfg.sig_handler_kwargs)
|
||||
|
||||
self.stop()
|
||||
izzylog.info('Bye! :3')
|
||||
#izzylog.info('Bye! :3')
|
||||
#sys.exit()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue