Przypuszczalnie masz już kolbie aplikacji przedmiotu oraz tras skonfigurowane, ale jeśli tworzysz aplikację tak:
import flask
app = flask.Flask(__name__)
następnie skonfigurować @app.route()
s, a następnie, gdy chcemy uruchomić aplikację:
import gevent
app_server = gevent.wsgi.WSGIServer((host, port), app)
app_server.serve_forever()
Następnie można po prostu uruchomić aplikację bezpośrednio zamiast powiedzieć gunicorn lub uWSGI lub cokolwiek innego, aby uruchomić go dla Ciebie.
Miałem przypadek, w którym chciałem, aby narzędzie do budowy kolby zbudowało aplikację sieciową (usługa REST API) i stwierdziło, że problemem jest niezdolność do komponowania kolby z innymi nie-kolbowymi, nie obsługującymi sieci elementami. W końcu znalazłem gevent.wsgi.WSGIServer
i właśnie tego potrzebowałem. Po wywołaniu app_server.serve_forever()
możesz zadzwonić pod numer app_server.stop()
, gdy aplikacja chce wyjść.
W moim wdrożeniu, moja aplikacja nasłuchuje na localhost: przy użyciu flask i gevent, a następnie mam odwrotne proxy proxy HTTPS na innym porcie i przekazuje je do mojej usługi skrzynki na localhost.
Tornado to bardzo lekki serwer w języku Python, uruchamiam go w moim środowisku dev. Ale może chcesz zajrzeć do tego. Jeśli usługa jest ukryta, nie widzę problemu z uruchomieniem serwera deweloperskiego w inbuild, ale doświadczyłem opóźnienia podczas rozwijania. Może nie być tak stabilny i responsywny ... – Hannes
Nie używaj Tornada do uruchamiania aplikacji WSGI. Ich własna dokumentacja ostrzega przed tym. – davidism
Dobrze, dobrze wiedzieć. Zgaduję. Jednak nigdy nie miałem z tym problemów. Muszę zajrzeć do dokumentacji ... :) – Hannes