ensure loop.close() and sys.exit() in gunicorn worker

This commit is contained in:
Jeong YunWon 2017-07-12 22:26:58 +09:00
parent b755431b93
commit be0f3731b4

View File

@ -3,6 +3,7 @@ import sys
import signal import signal
import asyncio import asyncio
import logging import logging
import traceback
try: try:
import ssl import ssl
@ -69,9 +70,15 @@ class GunicornWorker(base.Worker):
trigger_events(self._server_settings.get('before_stop', []), trigger_events(self._server_settings.get('before_stop', []),
self.loop) self.loop)
self.loop.run_until_complete(self.close()) self.loop.run_until_complete(self.close())
except:
traceback.print_exc()
finally: finally:
try:
trigger_events(self._server_settings.get('after_stop', []), trigger_events(self._server_settings.get('after_stop', []),
self.loop) self.loop)
except:
traceback.print_exc()
finally:
self.loop.close() self.loop.close()
sys.exit(self.exit_code) sys.exit(self.exit_code)