feat(config): add database connection options and cache backend

Add connection pooling and Django cache using Database backend for session persistence to improve performance and reliability in production environments.
This commit is contained in:
sankalp committed 2026-06-28 16:06:46 +05:45
1 parent b17e810531
commit ec350b1531
2 files changed
+35 -3

No files matched your search

+27 -3
View File
@@ -113,6 +113,7 @@ LOGIN_URL = "login"
LOGIN_REDIRECT_URL = "dashboard"
SESSION_SAVE_EVERY_REQUEST = True
SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
# ── Internationalisation ──────────────────────────────────────────────────────
@@ -130,6 +131,19 @@ STATICFILES_DIRS = [BASE_DIR / "static/"]
MEDIA_URL = "/media/"
MEDIA_ROOT = BASE_DIR / "media"
# ── Cache ──────────────────────────────────────────────────────────────────
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.db.DatabaseCache",
"LOCATION": "django_cache",
}
}
# ── Database ────────────────────────────────────────────────────────────────
CONN_MAX_AGE = env.int("CONN_MAX_AGE", default=600)
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
# ── Tailwind ──────────────────────────────────────────────────────────────────
@@ -153,6 +167,14 @@ REST_FRAMEWORK = {
"rest_framework.filters.OrderingFilter",
),
"DEFAULT_SCHEMA_CLASS": "drf_spectacular.openapi.AutoSchema",
"DEFAULT_THROTTLE_CLASSES": [
"rest_framework.throttling.AnonRateThrottle",
"rest_framework.throttling.UserRateThrottle",
],
"DEFAULT_THROTTLE_RATES": {
"anon": "100/hour",
"user": "1000/hour",
},
}
SIMPLE_JWT = {
@@ -211,10 +233,12 @@ SPECTACULAR_SETTINGS = {
Q_CLUSTER = {
"name": "project_management",
"workers": 2,
"timeout": 60, # seconds before a task is killed
"retry": 120, # seconds before a failed task is retried (must be > timeout)
"workers": env.int("Q_WORKERS", default=2),
"timeout": 60,
"retry": 120,
"queue_limit": 50,
"bulk": 10,
"orm": "default",
"poll": 2000,
"recycle": 500,
}
+8
View File
@@ -18,6 +18,14 @@ DATABASES = {
"PASSWORD": env("DB_PASSWORD"),
"HOST": env("DB_HOST"),
"PORT": env("DB_PORT", default="3306"),
"CONN_MAX_AGE": 600,
"OPTIONS": {
"charset": "utf8mb4",
"sql_mode": "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION",
"connect_timeout": 10,
"read_timeout": 30,
"write_timeout": 30,
},
}
}