WebSockets ve düzenli WSGI görünümlerini bir (Flask) uygulamasında birlikte kullanmak için Gunicorn kullanmak mümkün mü?WebSockets ve WSGI Gunicorn ile birlikte
Gevent WSGI sunucusunu kullanarak websockets'u nasıl çalıştıracağımı biliyorum ve Gunicorn ile çalışan, düzenli çalışanlarla birlikte düzenli bir WSGI uygulaması elde edebilirim, ancak iki kişiyi Gunicorn kullanarak bir uygulamadan bir araya getirmeye çalıştığımda bir hata:
ValueError: View function did not return a response
o gunicorn kullanarak, bir uygulamadan iki hizmet etmek mümkün mü? En sonunda nginx'in arkasına koymamı planlıyorum ve soketi başka bir uygulamaya bölmek ve iki sisteme sahip olmak zorunda değilim, çünkü bu çok fazla sistem kaynağı gerektirmiyor. O zamana kadar, bunu böyle yapmanın bir yolu var mı?
DÜZENLEME: Bu çalışma almak için anladım
. Anahtar 1) gevent için logging fonksiyonunu değiştirir ve 2) geventWebSocketWorker sınıf çalışanlarını kullandığım gunicorn'u belirttiğinizden emin olun.
Bu sitede bu cevapların bir parçasını bulundu: Kayıt için http://d.hatena.ne.jp/Malan/20121007
, bu benim WSGI şeyler çalışan bir sunucu çalıştıran kasırga/bükümlü/autobahn (teşekkürler Ürdün) ve başka olması muhtemelen daha iyi bir fikir olduğunu düşünüyorum . Ama bu ben burada istediğim bu değil :)
def log_request(self):
log = self.server.log
if log:
if hasattr(log, "info"):
log.info(self.format_request() + '\n')
else:
log.write(self.format_request() + '\n')
import gevent
gevent.pywsgi.WSGIHandler.log_request = log_request
from geventwebsocket.handler import WebSocketHandler
from gevent.pywsgi import WSGIServer
sudo gunicorn -c gunicorn_config.py -k "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" router:app
Bu, yaptığınız şeyle ilgili mi? http://stackoverflow.com/questions/13137449/combining-websockets-and-wsgi-in-a-python-app – Jordan
Kesinlikle, ancak mümkünse bu projeyle birlikte bükülmüş veya tornado kullanmaktan kaçınmak istiyorum. –
Gunscorn'u uwsgi lehine savurmalısın. – user37203