kdb - накладывает таймаут на удаленный запрос с уже открытым дескриптором - PullRequest
1 голос
/ 06 августа 2020

У меня есть процесс с несколькими открытыми дескрипторами для шлюзов, rdbs, hdbs и т.д. c.

Эти дескрипторы хранятся в простой таблице в памяти.

Я бы хотите найти способ запросить удаленную функцию, но наложить тайм-аут на моей стороне? возможно ли это?

например,

h: .conn.getHandle[`someAlias]; / this is literally returning the handle number
h({
  system"sleep 10" 
 }; ())

могу ли я каким-то образом наложить тайм-аут, чтобы через 5 секунд вышеупомянутый вызов вызывал ошибку или имел какое-то повторение logi c?

Ответы [ 2 ]

2 голосов
/ 06 августа 2020

добавьте

\T 5

перед запросом или при запуске процесса q используйте:

q -T 5
1 голос
/ 06 августа 2020

Вы можете использовать функцию тайм-аута с помощью системной команды \ T, если хотите, чтобы тайм-аут применялся ко всем удаленным вызовам

https://code.kx.com/q/basics/syscmds/#t -timeout

Вы бы используйте эту опцию в своем внутреннем процессе (RDB / HDB), тогда все запросы, отправленные этим процессам, будут уничтожены по истечении указанного тайм-аута

...