Проверьте статус долго выполняющегося запроса - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть запрос к базе данных, который удаляет из базы данных с некоторыми заданными условиями.Запрос инициируется конечной точкой, таймауты которой, если запрос занимает много времени (что он делает).Служба, которая вызывает эту конечную точку, должна выполнить некоторые другие задачи после успешного завершения этой операции.Поэтому нам нужно знать, когда этот запрос завершится.Запрос:

УДАЛИТЬ ИЗ foo ГДЕ creation_time BETWEEN?А ТАКЖЕ ?AND bar_id =?

Как узнать, когда запрос завершится?Я использую jdbctemplate для запросов к базе данных.Я подумал об одном из вариантов, но теперь уверен, как внутренний запрос between работает.

Я думал о создании конечной точки состояния, которая проверяет, выполняется ли еще запрос?Конечная точка проверит, есть ли какая-либо строка в foo, где creation_time = FROM и bar_id = id.Но я не знаю, как mysql внутренне обрабатывает запрос BETWEEN.Если он начинает удаление из FROM или TO или между ними.

Короткий вопрос: как проверить, выполняется ли мой запрос или завершен с помощью jdbctemplate?

1 Ответ

0 голосов
/ 06 февраля 2019

Вы можете выполнить команду SHOW FULL PROCESSLIST;.См. MySQL docs для хорошего описания команды.

Здесь будут показаны все запущенные потоки, а также запрос, который выполняется в данный момент, и время его выполнения.

Затем проанализируйте вывод, чтобы убедиться, что ваш запрос все еще выполняется.

Надеюсь, это поможет.

...