如何设置KDB查询的最长执行时间?

时间:2014-04-11 10:58:17

标签: kdb

特别是在查询远程KDB实例时,在查询中输入错误导致它花费数小时而不是几秒钟是一件痛苦的事 - 因为服务器是远程的,我甚至无法访问它来杀死KDB实例。

所以我想知道是否有某种方法来指定最长执行时间?

修改

我正在寻找一种基于每个查询从客户端执行此操作的方法。有些查询可能合法占用数小时,但其他查询不应超过10秒。服务器端的硬限制无济于事。

2 个答案:

答案 0 :(得分:4)

\T 5

或使用

启动kdb
q -T 5

将用户查询设置最多5秒钟。

您可以发送一个SIGINT http://en.wikipedia.org/wiki/Unix_signal,其效果与按下control-C相同,后者将尝试停止正在处理的命令。并非所有q代码都支持中断。

这样做的一种方法是有两个q进程,其中一个用于发送linux kill中断信号。

答案 1 :(得分:0)

尝试通过自己的流程转发查询:

  \T 3
  h:hopen `::3000
  0(h;({system "sleep 2";x+1};5))
6
  0(h;({system "sleep 4";x+1};5))
'stop