特别是在查询远程KDB实例时,在查询中输入错误导致它花费数小时而不是几秒钟是一件痛苦的事 - 因为服务器是远程的,我甚至无法访问它来杀死KDB实例。
所以我想知道是否有某种方法来指定最长执行时间?
修改
我正在寻找一种基于每个查询从客户端执行此操作的方法。有些查询可能合法占用数小时,但其他查询不应超过10秒。服务器端的硬限制无济于事。
答案 0 :(得分:4)
\T 5
或使用
启动kdbq -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