Add a MySQL connection pool for django using gevent
Project description
django-mysql-geventpool-27
.. image:: https://circleci.com/gh/laurentL/django-mysql-geventpool/tree/master.svg?style=svg :target: https://circleci.com/gh/laurentL/django-mysql-geventpool/tree/master
Mysql Connection Pooling backend for Django > 2.0 using gevent, only supports Python 3.7+ It works with gunicorn async worker via gevent. It implement an loadbalancing simple algo.
Fork from : https://github.com/shunsukeaihara/django-mysql-geventpool
This implimentation is based on django-db-geventpool(https://github.com/jneight/django-db-geventpool).
Installation
.. code-block:: console
pip install django-mysql-geventpool-27
Settings
Add the 'django_mysql_geventpool_27' modules to the INSTALLED_APPS like this:
.. code-block:: python
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_mysql_geventpool-27',
# ...other installed applications...
Add MAX_CONNS to OPTIONS to set the maximun number of connections allowed to database (default=4)
.. code-block:: python
DATABASES = {
'default': {
'ENGINE': 'django_mysql_geventpool_27.backends.mysql',
'NAME': 'dbname',
'USER': 'dbuser',
'PASSWORD': 'dbpassword',
'HOST': 'dbhost',
'PORT': 'dbport',
'OPTIONS': {
'MAX_CONNS': 20
}
}
}
Load balancing Galera multi master
For each connection, a random choice is operated on the HOST key of the DATABASE setting. For easy provisioning by an orchetrator like puppet/salt/ansible.., you can use this type of setting:
.. note::
All server must listen on the same tcp port.
.. code-block:: python
DATABASES = {
'default': {
'ENGINE': 'django_mysql_geventpool_27.backends.mysql',
'NAME': 'dbname',
'USER': 'dbuser',
'PASSWORD': 'dbpassword',
'HOST': 'server1,server2,serve3',
'PORT': 'dbport',
'OPTIONS': {
'MAX_CONNS': 20
}
}
}
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for django-mysql-geventpool-27-0.3.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8838ac4c6c50265fbe44da9b2daf18f6955a6e6c5b4459c662c2d4e7a6437b4 |
|
MD5 | bc0a709808b3e921f6301b8936b8f03a |
|
BLAKE2b-256 | 39e647277bf71a11b861fa91aa779758f3858852945aab3d713e829c4cd6a30b |