如何使用 k() 函数接收 kdb/q 中的数据
How do I use the k() function to receive data in kdb/q
使用 Interfacing with C# 中的 c.cs 接口,如何使用 k()
函数从长运行 计算中接收数据?
我想做的是
conn.ks("compute_long_running_function[]");
做点别的事
results=conn.k();//wait for data
但是,后一个调用不会 return 最后的结果 -- 它会无限期地超时,除非事先设置 /T {N}
。
有没有办法将数据从服务器发送到等待它的客户端?否则如何使用不带参数的 k()
函数。
请注意,此问题也适用于 java 界面,几乎完全相同。
k() 函数将阻塞,直到它从远程套接字接收到数据。因此,如果您的函数如下所示:
compute_long_running_function:{[] r:til 1000; neg[.z.w] r }
函数结果将通过环回连接发送并由 conn.k()
检索
另一种方法是你只做:
results=conn.k("compute_long_running_function[]");
这将 return 函数准备就绪后的结果。但你可能已经知道了。
此致,
大卫
如果您调用 ks
,您函数的 return 值将被忽略,您无法使用 k()
检索它。
您只使用 k() 来接收 显式 由 q
进程发送给您的数据,@David 通过使用客户端句柄的负数显示的方式.
使用 Interfacing with C# 中的 c.cs 接口,如何使用 k()
函数从长运行 计算中接收数据?
我想做的是
conn.ks("compute_long_running_function[]");
做点别的事
results=conn.k();//wait for data
但是,后一个调用不会 return 最后的结果 -- 它会无限期地超时,除非事先设置 /T {N}
。
有没有办法将数据从服务器发送到等待它的客户端?否则如何使用不带参数的 k()
函数。
请注意,此问题也适用于 java 界面,几乎完全相同。
k() 函数将阻塞,直到它从远程套接字接收到数据。因此,如果您的函数如下所示:
compute_long_running_function:{[] r:til 1000; neg[.z.w] r }
函数结果将通过环回连接发送并由 conn.k()
检索另一种方法是你只做:
results=conn.k("compute_long_running_function[]");
这将 return 函数准备就绪后的结果。但你可能已经知道了。
此致,
大卫
如果您调用 ks
,您函数的 return 值将被忽略,您无法使用 k()
检索它。
您只使用 k() 来接收 显式 由 q
进程发送给您的数据,@David 通过使用客户端句柄的负数显示的方式.