QSqlDatabase * QSqlQuery: они не управляют изменением ip - PullRequest
0 голосов
/ 20 сентября 2018

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

Решение открыть и закрыть базу данных для каждой транзакции очень обременительно (приложение управляет несколькими транзакциями в секунду при ограниченном подключении к Интернету).Я бы предпочел не убивать поток.

Если вы видите решение этой болезненной проблемы.Заранее спасибо.

(я работаю с Qt5.9 и Ubuntu 18.04)

...