Django Gunicorn ConnectionHandler не имеет атрибута «connection_pool» - PullRequest
0 голосов
/ 11 марта 2020

Я установил https://github.com/zhangi/django_db_pooling с Django 3.0.4, чтобы включить пул соединений с Gunicorn.

Вместо использования mysqlclient==1.4.6 мне пришлось переключиться на использование pymysql==0.9.3 для работы библиотеки и для ошибки с совместимостью я применил патч в этом посте https://adamj.eu/tech/2020/02/04/how-to-use-pymysql-with-django/:

import py mysql

...

DATABASES = {"default": {"ENGINE": "django .db.backends. mysql", "NAME": "testapp",}}

# Поддельная версия Py MySQL и установка как MySQLdb # https://adamj.eu/tech/2020/02/04/how-to-use-pymysql-with-django/ py mysql .version_info = (1, 4, 2, "final", 0) py mysql .install_as_MySQLdb ()

В соответствии с инструкциями библиотеки django_db_pooling я применил конфигурацию следующим образом: import os import pymysql из django .core.wsgi import get_wsgi_application из django_db_pooling import пул

pymysql.install_as_MySQLdb()

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxxxx.settings")

application = get_wsgi_application()

pooling.set_pool_size(4)
pooling.apply_patch()

Однако, когда мой проект работает в gunicorn и пытается получить доступ к базе данных, я получаю следующие ошибки:

Traceback (most recent call last):                                                                                                  
File "/home/simernes/workspace/myproject/env/lib/python3.7/site-packages/gunicorn/workers/sync.py", line 187, in handle_request                                                                                                                        
    respiter.close()                                                                                                                
File "/home/simernes/workspace/myproject/env/lib/python3.7/site-packages/django/http/response.py", line 253, in close                                                                                                                                  
    signals.request_finished.send(sender=self._handler_class)                                                                       
File "/home/simernes/workspace/myproject/env/lib/python3.7/site-packages/django/dispatch/dispatcher.py", line 175, in send                                                                                                                             
    for receiver in self._live_receivers(sender)                                                                                    
File "/home/simernes/workspace/myproject/env/lib/python3.7/site-packages/django/dispatch/dispatcher.py", line 175, in <listcomp>                                                                                                                       
    for receiver in self._live_receivers(sender)                                                                                    
File "/home/simernes/workspace/myproject/env/lib/python3.7/site-packages/django_db_pooling/pooling.py", line 121, in recycle_old_connections                                                                                                           
    ConnectionHandler.connection_pool[alias].release(conn)                                                                          
AttributeError: type object 'ConnectionHandler' has no attribute 'connection_pool'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...