开发手册 欢迎您!
软件开发者资料库

Q语言 - 进程间通信

Q语言进程间通信 - 使用这个初学者的教程,简单易学地学习KDB +,包括从概述,体系结构,Q编程语言,类型转换,时态数据,列表,索引,字典,表,动词和基础到高级知识。副词,联接,函数,内置函数,查询,进程间通信,消息处理程序(.Z库),属性,功能查询,表算法,磁盘上的表,维护功能。

KDB +允许一个进程通过进程间通信与另一个进程通信. Kdb +进程可以连接到同一台计算机,同一网络甚至远程的任何其他kdb +.我们只需要指定端口,然后客户端就可以与该端口通信.任何 q 进程都可以与任何其他 q 进程通信,只要它可以在网络上访问并正在侦听连接.

  • 服务器进程侦听连接并处理任何请求

  • 客户端进程启动连接并且发送要执行的命令

客户端和服务器可以在同一台机器上,也可以在不同的机器上.进程可以是客户端和服务器.

通信可以是,

  • 同步(等待返回结果)

  • 异步(暂无等待没有结果返回)

初始化服务器

A q 服务器通过指定要监听的端口来初始化,

 q -p 5001    /命令行 \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`:https://www.tutorialspoint.com/www.myfx.com:5001  / server at https://www.tutorialspoint.com/www.myfx.com

要启动连接,我们使用函数"hopen",它返回一个整数连接句柄.此句柄用于所有后续客户端请求.例如 :

q)h:hopen `::5001q)h"til 5"0 1 2 3 4q)hclose h

同步和异步消息

一旦我们有了句柄,我们就可以同步或异步发送消息.

同步消息 : 发送消息后,它会等待并返回结果.其格式如下:<

  handle"message"

异步消息 : 发送消息后,立即开始处理下一个语句,而不必等待并返回结果.其格式如下<

  neg [handle]"message"

需要响应的消息,例如函数调用或select语句,通常使用同步形式;而不需要返回输出的消息(例如,将更新插入表)将是异步的.