Как справиться с ошибкой соединения с базой данных в Django 1.2? - PullRequest
5 голосов
/ 08 июля 2010

Как можно обрабатывать недоступность базы данных и перенаправлять запросы от недоступного ведомого к другому в Django 1.2?

Кстати, я узнал, что это обсуждалось: http://code.djangoproject.com/wiki/MultipleDatabaseSupport#Requirements (см. «Прозрачная обработка сбоя базы данных»)

UPD> Я использую бэкэнд PostgreSQL (вероятно, буду использовать pg pool или какой-то другой кластер potgres) под linux

Ответы [ 3 ]

4 голосов
/ 21 июля 2010

Если вы используете бэкэнд PostgreSQL и работаете в системе Linux / BSD и т. Д., Рассмотрите возможность использования pgpool: http://www.pgpool.net/ Эта утилита обрабатывает соединения с сервером БД для вас, поэтому вы подключаетесь только к pgpool. Вам не нужно реализовывать больше логики. Просто подключитесь к pgpool, а не к самому PostgreSQL.

2 голосов
/ 24 июля 2010

К сожалению, в настоящее время нет способа использовать функцию DATABASE_ROUTERS для обработки недоступной базы данных, вам придется использовать внешний инструмент, как предлагали другие.

0 голосов
/ 21 июля 2010

Есть также прокси для MySQL, MySQL Proxy . Вы бы подключились к прокси, и этот прокси знал бы, как обрабатывать отработки отказа. В случае MySQL Proxy он разработан для восстановления после отказа, поэтому я ожидаю, что он будет стабильным и будет знать, как обрабатывать ошибки:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...