Automatically ty re-establishing the Django database connection when it gets lost.
Project description
Django Database Connection Retrier
Automatically try to re-establish Django database connections when they fail due to DNS errors.
When the Django app (dbconnectionretrier
) loads, a hook is installed in Django's BaseDatabaseWrapper.ensure_connection
that catches django.db.OperationalError
. If the error raised is a DNS error, the connction attempt is retried synchronously three times.
Tested on Django 2.0-2.3 and Python 3.7 and 3.8. Might work with other versions of Django and Python.
Installation
-
Install the package from PyPi:
$ pip install django-db-connection-retrier
-
Add
dbconnectionretrier
to yourINSTALLED_APPS
:INSTALLED_APPS = [ 'dbconnectionretrier', ... ]
Manual usage
Adding dbconnectionretrier
to INSTALLED_APPS
enables automatic connection retrying. Want more granular control over patching?
Globally
from dbconnectionretrier.patch import patch_ensure_connection
# after this line executes, connection retrying is enabled
patch = patch_ensure_connection()
# after this line, the connection retrying is disabled
patch.rollback()
Context manager
from dbconnectionretrier.patch import patch_ensure_connection_contextual
with patch_ensure_connection_contextual():
# all code inside this block benefits from connection retrying
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-db-connection-retrier-1.0b2.tar.gz
.
File metadata
- Download URL: django-db-connection-retrier-1.0b2.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.8.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e388131605b870a8788a8aed886c8e89ef5fbd914b81bad1f6060cad98c24d7d |
|
MD5 | f14083aa1fdaa53aebd0f1f7507d37a2 |
|
BLAKE2b-256 | 743f6b6b791c4af14d59de136d04eec374b875a8c19fab9eb06f952d089815f5 |