是否有命令知道kdb服务器是否正忙于运行查询?更好的是,知道正在运行的查询的完成百分比是多少?
到目前为止,我一直在查看linux上的顶级屏幕,知道要使用哪个服务器......
答案 0 :(得分:3)
不幸的是,不是直接的。原因是由于KDB进程的单线程特性。实际上,通过向服务器添加一些基本日志记录可以轻松解决这个问题。因此,每当查询进入时,只需登录到文件,查询进入的时间以及结果何时返回给用户。
分别查看被调用以处理同步或异步请求的.z.pg和.z.ps函数。默认情况下,它们只是设置为“value”,这意味着评估字符串并返回结果。只需将其替换为您自己的函数,即可将事件记录到文件或日志服务器中。
答案 1 :(得分:-1)
除了上述解决方案,更简单的方法是:继续检查端口。
通常所有查询都将针对端口运行,而kdb服务器可以为不同目的启动多个端口。
详细说明: 使用下面的代码再次查询端口,如果端口忙,则将返回null res。你可以进一步杀死端口并重新启动它或者无论要求是什么。
代码将向端口发送1并计算。
.server.testQuery:{[inPort]
res:@[{hopen(x;3000)};`$":",":" sv string `,inPort;0N];
if[not null res;hclose res];
:res
};