gunicorn
This commit is contained in:
17
README.md
17
README.md
@@ -37,6 +37,23 @@ python app.py
|
||||
|
||||
Domyślnie: `http://127.0.0.1:8090`.
|
||||
|
||||
## Uruchomienie produkcyjne
|
||||
|
||||
Preferowany wariant bez deweloperskiego Werkzeug:
|
||||
|
||||
```bash
|
||||
. venv/bin/activate
|
||||
gunicorn --worker-class gthread --workers 1 --threads 32 --bind 0.0.0.0:8090 --access-logfile - --error-logfile - wsgi:app
|
||||
```
|
||||
|
||||
Note: aplikacja zostaje przy `async_mode="threading"`, więc WebSocket, `start_background_task`, kolejka operacji i poller działają w tym samym modelu co wcześniej.
|
||||
|
||||
Alternatywy przeanalizowane, ale nie wdrożone:
|
||||
|
||||
- `eventlet` przez Gunicorn: działa z Flask-SocketIO, ale wymaga green threads i monkey-patching; większe ryzyko regresji dla operacji plikowych/SCGI.
|
||||
- `gevent` przez Gunicorn: dobry wariant produkcyjny, ale wymaga dodatkowych zależności i testów zgodności.
|
||||
- wiele workerów Gunicorn: wymaga Redis/RabbitMQ/Kafka jako message queue dla Socket.IO, więc nie jest zamiennikiem 1:1.
|
||||
|
||||
## Profil SCGI
|
||||
|
||||
Przykład:
|
||||
|
||||
Reference in New Issue
Block a user