Listeners for main server process (#2018)

* Initial POC

* Add test case

* Resolve create_server and Gunicorn serve)

* add testr coverage
This commit is contained in:
Adam Hopkins
2021-03-01 15:03:26 +02:00
committed by GitHub
parent 170177feb0
commit 4b968dc611
6 changed files with 99 additions and 3 deletions

View File

@@ -7,6 +7,7 @@ import traceback
from gunicorn.workers import base as base # type: ignore
from sanic.log import logger
from sanic.server import HttpProtocol, Signal, serve, trigger_events
from sanic.websocket import WebSocketProtocol
@@ -72,6 +73,15 @@ class GunicornWorker(base.Worker):
)
self._server_settings["before_start"] = ()
main_start = self._server_settings.pop("main_start", None)
main_stop = self._server_settings.pop("main_stop", None)
if main_start or main_stop: # noqa
logger.warning(
"Listener events for the main process are not available "
"with GunicornWorker"
)
self._runner = asyncio.ensure_future(self._run(), loop=self.loop)
try:
self.loop.run_until_complete(self._runner)