如何使用k()函数接收kdb/q中的数据?
本文关键字:数据 kdb 何使用 函数 | 更新日期: 2023-09-27 18:01:28
使用c#接口中的c.cs接口,我如何使用k()
函数从长时间运行的计算中接收数据?
我想做的是
conn.ks("compute_long_running_function[]");
做点别的
results=conn.k();//wait for data
但是,后一个调用不会返回最后一个结果——它会无限期超时,除非事先设置了/T {N}
。
是否有一种方法将数据从服务器发送到正在等待它的客户端?没有参数的k()
函数还能怎么用呢?
请注意,这个问题也适用于java接口,它们几乎相同。
k()函数将阻塞,直到它接收到来自远程套接字的数据。如果你的函数是这样的:
compute_long_running_function:{[] r:til 1000; neg[.z.w] r }
函数结果将通过环回连接发送,并由connect .k()检索
你也可以这样做:
results=conn.k("compute_long_running_function[]");
,它将在函数的结果准备好时返回。但是你可能已经知道了。
问候,大卫
如果您调用ks
,则函数的返回值将被忽略,并且您不能使用k()
来检索它。
您只使用k()来接收q
进程显式发送给您的数据,@David通过使用客户端句柄的否定方式显示。