Add a MySQL connection pool for django using gevent
Project description
Mysql Connection Pooling backend for Django < 2.0 using gevent, only supports Python 2.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
pip install django-mysql-geventpool-27
Settings
Add the ‘django_mysql_geventpool_27’ modules to the INSTALLED_APPS like this:
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)
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.
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.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 180ca9abe3be4ecfb76b64203d6bcd37d2facd37da1cc28d7cc70e426e2bb99d |
|
MD5 | 73d5f7cb9cbf800fc0d5be03a020ca62 |
|
BLAKE2-256 | 4c3c9ab564b7254060969254c8728f281902b7eb59fa5872a3a826f4744bf6a1 |