fixes stopping of SDK runner

This commit is contained in:
Ronald Steinke 2018-01-10 10:15:44 +01:00
parent d87a075786
commit 866e765c1e
2 changed files with 13 additions and 7 deletions

View File

@ -1,9 +1,8 @@
from signal import SIGTERM, SIGINT
import gevent.signal
from flask import (Flask, request, abort, redirect, url_for,
Response as FlaskResponse)
from gevent import signal as gevent_signal
from gevent.pywsgi import WSGIServer
from geventwebsocket.handler import WebSocketHandler
from socketio import Server as SioServer, Middleware as SioMiddleware
@ -32,8 +31,8 @@ class SimpleFlaskRunner(AppRunner):
_server = self._get_server()
self.logger.debug("Serving on %s:%s", self.listen_on, self.port)
gevent_signal(SIGTERM, _server.stop)
gevent_signal(SIGINT, _server.stop)
gevent.signal(SIGTERM, _server.stop)
gevent.signal(SIGINT, _server.stop)
_server.serve_forever()
def add_route(self, route, handler, methods=("POST", "GET")):

View File

@ -1,4 +1,8 @@
from gevent import spawn_later, wait
from signal import SIGTERM, SIGINT
import gevent.signal
from gevent import spawn_later
from gevent.event import Event as GEventEvent
from futile.logging import LoggerMixin
@ -22,7 +26,7 @@ class AppRunner(LoggerMixin):
self.logger.exception("Error")
raise
finally:
self.logger.debug("Shutting down")
self.logger.info("Shutting down.")
self._shutdown_app()
for timer in self._timers:
timer.kill()
@ -30,7 +34,10 @@ class AppRunner(LoggerMixin):
def _run(self):
self.m2m_app.run(self, self.m2m_ep)
wait()
shutdown_event = GEventEvent()
gevent.signal(SIGTERM, shutdown_event.set)
gevent.signal(SIGINT, shutdown_event.set)
shutdown_event.wait()
def _shutdown_app(self):
self.m2m_app.shutdown()