This commit is contained in:
Mateusz Gruszczyński
2026-05-04 10:43:31 +02:00
parent 95fb7649f2
commit 31bba1269d
9 changed files with 94 additions and 27 deletions

View File

@@ -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: