Backend Reference¶
django-prodserver supports multiple production-ready server backends for WSGI/ASGI applications and background workers. Each backend is configured using the PRODUCTION_PROCESSES setting in your Django settings file.
Available Backends¶
Web Servers¶
Backend |
Type |
Best For |
|---|---|---|
WSGI |
Traditional Django, Linux production |
|
WSGI |
Windows, pure Python |
|
WSGI |
High performance (Rust) |
|
ASGI |
Async Django, WebSockets |
|
WSGI |
Traditional with Uvicorn perf |
|
ASGI |
High-perf async (Rust) |
Background Workers¶
Worker backends live under django_prodserver.backends.workers and are started
with the worker management command (python manage.py worker <process_name>).
Backend |
Best For |
|---|---|
Distributed tasks, complex workflows |
|
Scheduled/periodic tasks |
|
Monitoring/admin web UI for Celery |
|
Simple tasks, no dependencies |
|
ORM-backed, admin interface |
Web servers are started with the server command (python manage.py server <process_name>).
Quick Comparison¶
Backend |
Async |
Windows |
External Deps |
|---|---|---|---|
Gunicorn |
No |
Limited |
None |
Waitress |
No |
Yes |
None |
Granian |
Both |
Yes |
None |
Uvicorn |
Yes |
Yes |
None |
Celery |
Yes |
Yes |
Redis/RabbitMQ |
Django Tasks |
Yes |
Yes |
None |
Django-Q2 |
Yes |
Yes |
None |
ARGS Translation¶
All backends convert the ARGS dict to CLI arguments:
"ARGS": {"bind": "0.0.0.0:8000", "workers": "4"}
# becomes: --bind=0.0.0.0:8000 --workers=4
See individual backend pages for specific ARGS options.