如何终止 RDB 或 HDB 中的 KDB 查询?

How to kill KDB queries in RDB or HDB?

我们有一个代码工厂,有时有人会错误地在没有日期的 HDB 中运行查询,或者在没有时间的 RDB 中运行查询,或者使用其他一些可能会杀死 KDB 的处理逻辑。我们如何在不重启 KDB 实例的情况下找到并终止查询?

您可以在您的服务中设置客户端查询超时:

参数:'-T'

参考:http://code.kx.com/q4m3/13_Commands_and_System_Variables/#13121-timeout-t

来自 wiki: 超时参数(注意大写)是一个整数,它指定来自客户端的任何调用在超时和终止之前将执行的秒数。默认值为 0,表示没有超时。该参数对应命令\T.

例如: 启动您的 q 进程:

       q -T 40

它将客户端查询超时设置为 40 秒。

正如@Rahul 所说,您可以使用 T 来超时。

如果您使用的是 unix 系统,您还可以 kill -SIGINT <pid> - 这会终止当前线程。在多线程模式下,您可能会得到混合结果。