2012-09-27 14 views
6

Kiedy testuję moją nową aplikację Flask za pomocą wbudowanego serwera WWW, wszystko jest "pojedynczo gwintowane" i blokowane. Serwer nie może obsłużyć jednego żądania bez ukończenia innego. Może przetwarzać tylko jedno żądanie naraz.Rozmieszczanie kolb, żądania równoległe

Wdrażanie usługi WWW jest oczywiście niepożądane. W jaki sposób wdrażasz aplikacje Flask, aby rzeczy mogły poruszać się równolegle?

Czy istnieją różne rzeczy do rozważenia dotyczące bezpieczeństwa gwintu i współbieżności wewnątrz kodu (ochrona obiektów z zamkami itd.) Lub czy wszystkie oferty są równoważne?

Odpowiedz

5

Używam uWSGI z pętlą gevent. To jest bilet. W rzeczywistości w ten sposób używam py-redis, który blokuje się, aby nie blokować.

Ponadto używam uWSGI do pisania żądań po odpowiedzi, nadal akceptując więcej żądań.

+0

Również .... używaj nadzoru z nginx. Będę potrzebował co najmniej jednej pętli gevent na proces. – Tampa

1

Używam Nginx + gunicorn. Ale uWSGI jest standardem de facto, mam nadzieję.