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
Built Distribution
Hashes for django-db-connection-retrier-1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 03728c748644fdc28e015c8df3f9e7038aca96522325bb3be4fd89f6a3787146 |
|
MD5 | 90d413b95691b0e24a8bce3e8dd81075 |
|
BLAKE2b-256 | 06c4f1dfc34a45ad8f03a9d5a5b80d6ca379efe2a5a6757218564aebecfcdf51 |
Hashes for django_db_connection_retrier-1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b88c26a66a2a97ee8f5ea657a0437c76fd9bbf6654c7832aeda6421e6c862cfc |
|
MD5 | 98e4057e266f519d07e1c4c72922f9e9 |
|
BLAKE2b-256 | 0d356dd9edf163512611b30c2792f80cd5e1930aec4ca6ac2e213317dd1e7fe2 |