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:
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 |
|
BLAKE2b-256 | 4c3c9ab564b7254060969254c8728f281902b7eb59fa5872a3a826f4744bf6a1 |