Automatically ty re-establishing the Django database connection when it gets lost.
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.
Install the package from PyPi:
$ pip install django-db-connection-retrier
INSTALLED_APPS = [ 'dbconnectionretrier', ... ]
INSTALLED_APPS enables automatic connection retrying. Want more granular control over patching?
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()
from dbconnectionretrier.patch import patch_ensure_connection_contextual with patch_ensure_connection_contextual(): # all code inside this block benefits from connection retrying
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size django-db-connection-retrier-1.0b1.tar.gz (4.0 kB)||File type Source||Python version None||Upload date||Hashes View hashes|
Hashes for django-db-connection-retrier-1.0b1.tar.gz