Проблема проста, но без очевидного решения: когда мой маршрутизатор меняет ip, не вызывая разрыв сети, QSqlDatabase не обнаруживает, что соединение с удаленной базой данных потеряно.Следующий exec () в QSqlQuery будет блокировать поток на несколько десятков минут, прежде чем понять, что, действительно, соединение потеряно.На стороне сервера делать нечего, поскольку, даже если вы внедрите Statement_timeout в Postgresql, клиент никогда не получит сигнал (я полагаю, из-за изменения IP-адреса).К сожалению, QSqlQuery блокируется и не имеет времени ожидания.
Решение открыть и закрыть базу данных для каждой транзакции очень обременительно (приложение управляет несколькими транзакциями в секунду при ограниченном подключении к Интернету).Я бы предпочел не убивать поток.
Если вы видите решение этой болезненной проблемы.Заранее спасибо.
(я работаю с Qt5.9 и Ubuntu 18.04)