📅  最后修改于: 2020-11-03 06:52:37             🧑  作者: Mango
KDB+允许一个进程通过进程间通信与另一个进程进行通信。 Kdb +进程可以连接到同一台计算机,同一网络甚至是远程的任何其他kdb +。我们只需要指定端口,然后客户端就可以与该端口通信。任何q进程都可以与任何其他q进程通信,只要它在网络上可访问并且正在侦听连接即可。
服务器进程监听连接并处理所有请求
客户端进程启动连接并发送要执行的命令
客户端和服务器可以在同一台计算机上,也可以在不同的计算机上。一个进程既可以是客户端,也可以是服务器。
交流可以是,
同步(等待结果返回)
异步(无等待,无结果返回)
通过指定要侦听的端口来初始化q服务器,
q –p 5001 / command line
\p 5001 / session command
通信句柄是一个以“:”开头的符号,其形式为-
`:[server]:port-number
`::5001 / server and client on same machine
`:jack:5001 / server on machine jack
`:192.168.0.156 / server on specific IP address
`:www.myfx.com:5001 / server at www.myfx.com
要开始连接,我们使用函数“ hopen”,它返回一个整数连接句柄。此句柄用于所有后续客户端请求。例如-
q)h:hopen `::5001
q)h"til 5"
0 1 2 3 4
q)hclose h
一旦有了句柄,就可以同步或异步发送消息。
同步消息-发送消息后,它将等待并返回结果。其格式如下-
handle “message”
异步消息-发送消息后,无需等待并返回结果即可立即开始处理下一条语句。其格式如下-
neg[handle] “message”
需要响应的消息,例如函数调用或select语句,通常将使用同步形式。而不需要返回输出(例如,向表中插入更新)的消息将是异步的。