У нас есть тикер, и иногда кто-то по ошибке запускает запросы в HDB без даты или в RDB без времени или с какой-либо другой логикой обработки, которая может убить KDB. Как мы можем найти и уничтожить запрос без перезапуска экземпляра KDB?
Как убить запросы KDB в RDB или HDB?
Ответы (2)
Вы можете установить тайм-аут клиентского запроса в своем сервисе:
параметр: '-T'
ссылка: http://code.kx.com/q4m3/13_Commands_and_System_Variables/#13121-timeout-t
Из вики: Параметр тайм-аута (обратите внимание на верхний регистр) - это целое число, которое указывает количество секунд, в течение которых любой вызов от клиента будет выполняться, прежде чем он истечет и завершится. Значение по умолчанию - 0, что означает отсутствие тайм-аута. Этот параметр соответствует команде \ T.
Пример: начните процесс q как:
q -T 40
он установит тайм-аут клиентского запроса на 40 секунд.
Как говорит @Rahul, вы можете использовать T для тайм-аута.
Если вы используете систему unix, вы также можете kill -SIGINT <pid>
- что убивает текущий поток. Однако в многопоточном режиме результаты могут быть неоднозначными.