mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-06-07 01:14:19 -04:00
fix: django connection settings (#1529)
This commit is contained in:
@@ -3,7 +3,9 @@ from __future__ import absolute_import
|
||||
import os
|
||||
|
||||
from celery import Celery
|
||||
from celery.signals import worker_process_init
|
||||
from django.conf import settings
|
||||
from django.db import connections
|
||||
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cms.settings")
|
||||
app = Celery("cms")
|
||||
@@ -20,3 +22,13 @@ app.conf.task_always_eager = settings.CELERY_TASK_ALWAYS_EAGER
|
||||
|
||||
|
||||
app.conf.worker_prefetch_multiplier = 1
|
||||
|
||||
|
||||
@worker_process_init.connect
|
||||
def close_db_pool_on_fork(**_):
|
||||
# psycopg3's ConnectionPool is not fork-safe: children inherit dead sockets
|
||||
# from the parent's pool and block on getconn() until PoolTimeout. Dispose
|
||||
# the inherited pool here so each prefork child opens its own on first use.
|
||||
# NB: plain conn.close() would only putconn() back into the broken pool.
|
||||
for conn in connections.all():
|
||||
conn.close_pool()
|
||||
|
||||
Reference in New Issue
Block a user