如何判断kdb服务器是否正忙?

时间:2013-06-22 17:59:15

标签: kdb

是否有命令知道kdb服务器是否正忙于运行查询?更好的是,知道正在运行的查询的完成百分比是多少?

到目前为止,我一直在查看linux上的顶级屏幕,知道要使用哪个服务器......

2 个答案:

答案 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  
  };
相关问题