From 28b334ad33ce3bd8a10a4333557b15e872bb0142 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Thu, 17 Oct 2019 14:39:06 +0200
Subject: [PATCH] Reduce DB connection leaks

---
 api/compose/django/server.sh       | 2 +-
 api/config/asgi.py                 | 1 +
 api/config/settings/common.py      | 2 +-
 changes/changelog.d/db.enhancement | 1 +
 4 files changed, 4 insertions(+), 2 deletions(-)
 create mode 100644 changes/changelog.d/db.enhancement

diff --git a/api/compose/django/server.sh b/api/compose/django/server.sh
index 0e4c737afc..9c77095163 100755
--- a/api/compose/django/server.sh
+++ b/api/compose/django/server.sh
@@ -1,3 +1,3 @@
 #!/bin/bash -eux
 python /app/manage.py collectstatic --noinput
-gunicorn config.asgi:application -w ${FUNKWHALE_WEB_WORKERS-1} -k uvicorn.workers.UvicornWorker -b 0.0.0.0:5000
+gunicorn config.asgi:application -w ${FUNKWHALE_WEB_WORKERS-1} -k uvicorn.workers.UvicornWorker -b 0.0.0.0:5000 ${GUNICORN_ARGS-}
diff --git a/api/config/asgi.py b/api/config/asgi.py
index b4a8105de7..d578a3bffa 100644
--- a/api/config/asgi.py
+++ b/api/config/asgi.py
@@ -1,6 +1,7 @@
 import os
 
 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings.production")
+os.environ.setdefault("ASGI_THREADS", "5")
 
 import django  # noqa
 
diff --git a/api/config/settings/common.py b/api/config/settings/common.py
index a20081dd2f..43a7a29f52 100644
--- a/api/config/settings/common.py
+++ b/api/config/settings/common.py
@@ -270,7 +270,7 @@ DATABASES = {
     "default": env.db("DATABASE_URL")
 }
 DATABASES["default"]["ATOMIC_REQUESTS"] = True
-DATABASES["default"]["CONN_MAX_AGE"] = env("DB_CONN_MAX_AGE", default=60 * 60)
+DATABASES["default"]["CONN_MAX_AGE"] = env("DB_CONN_MAX_AGE", default=60 * 5)
 
 MIGRATION_MODULES = {
     # see https://github.com/jazzband/django-oauth-toolkit/issues/634
diff --git a/changes/changelog.d/db.enhancement b/changes/changelog.d/db.enhancement
new file mode 100644
index 0000000000..da25ea858b
--- /dev/null
+++ b/changes/changelog.d/db.enhancement
@@ -0,0 +1 @@
+Reduce the number of simultaneous DB connections under some deployment scenario
-- 
GitLab