Я использую pgBouncer в режиме пула сеансов, но, как и у большинства людей, у меня возникают проблемы, когда я запускаю PAUSE для переключения базы данных, потому что любые сеансы, которые выдавали any SQL, будут вызыватьэто повесить.В основном я ищу "Принудительную" ПАУЗУ, где любые сеансы, которые не находятся в режиме ожидания, будут отключены.
То, что я пробовал:
1) ПАУЗА ... но если у вас есть какие-либо блокирующие сеансы, то это не может быть убито, и вам нужно искать их на сервере.
2) SET query_timeout = 1 ,затем PAUSE ... но query_timeout не применяется к паузе, поэтому он просто зависает навсегда.
3) SUSPEND ... но это не совсем то же самое, и автоматически RESUME d при отключении.
4) KILL ... но это без разбора все убивает, и клиенты получают жесткое отключение.
Я понимаю, что лучшее решение - это использовать pool_mode=transaction
, но, как обычно, я не могу заставить своих разработчиков играть в мяч.
Есть ли что-то, чего мне здесь не хватает в лучшем способесделать переключение / переключение при использовании pgBouncer на серверах приложений в режиме пула сеансов?