- KDB+ - 教程
- KDB+ - 概述
- KDB + - 架构( Architecture)
- Q编程语言(Q Programming Language)
- Q语言 - 类型转换(Type Casting)
- Q语言 - 时间数据(Temporal Data)
- Q Language - Lists
- Q语言 - 索引(Indexing)
- Q语言 - 词典(Dictionaries)
- Q Language - Table
- Q语言 - 动词和副词(Verb & Adverbs)
- Q Language - Joins
- Q语言 - 功能(Functions)
- Q语言 - 内置函数(Built-in Functions)
- Q语言 - 查询(Queries)
- Q - 进程间通信(Q - Inter-Process Communication)
- Q - Message Handler (.Z Library)
- Q语言 - 属性(Attributes)
- Q语言 - 功能查询(Functional Queries)
- Q语言 - 表算法(Table Arithmetic)
- Q语言 - 磁盘上的表(Tables on Disk)
- Q语言 - 维护功能(Maintenance Functions)
- KDB+ - 有用的资源
- KDB+ - 讨论
Q - Message Handler (.Z Library)
当q进程通过进程间通信连接到另一个q进程时,它由消息处理程序处理。 这些消息处理程序具有默认行为。 例如,在同步消息处理的情况下,处理程序返回查询的值。 在这种情况下,同步处理程序是.z.pg ,我们可以根据要求覆盖它。
Kdb +进程有几个预定义的消息处理程序。 消息处理程序对于配置数据库很重要。 一些用法包括 -
Logging - 记录传入消息(有助于发生任何致命错误),
Security - 允许/禁止基于用户名/ IP地址访问数据库,某些函数调用等。 它有助于仅向授权订户提供访问权限。
Handle connections/disconnections其他进程的Handle connections/disconnections 。
预定义的消息处理程序
下面讨论一些预定义的消息处理程序。
.z.pg
它是一个同步消息处理程序(进程获取)。 只要在kdb +实例上收到同步消息,就会自动调用此函数。
参数是要执行的字符串/函数调用,即传递的消息。 默认情况下,它定义如下 -
.z.pg: {value x} /simply execute the message
received but we can overwrite it to
give any customized result.
.z.pg : {handle::.z.w;value x} /this will store the remote handle
.z.pg : {show .z.w;value x} /this will show the remote handle
.z.ps
它是一个异步消息处理程序(进程集)。 它是异步消息的等效处理程序。 参数是要执行的字符串/函数调用。 默认情况下,它定义为,
.z.pg : {value x} /Can be overriden for a customized action.
以下是异步消息的自定义消息处理程序,我们使用了受保护的执行,
.z.pg: {@[value; x; errhandler x]}
这里errhandler是一个在出现任何意外错误时使用的函数。
.z.po[]
它是一个连接打开处理程序(进程打开)。 它在远程进程打开连接时执行。 要在打开与进程的连接时查看句柄,我们可以将.z.po定义为,
.z.po : {Show “Connection opened by” , string h: .z.h}
.z.pc[]
它是一个紧密的连接处理程序(进程关闭)。 连接关闭时调用它。 我们可以创建自己的关闭处理程序,它可以将全局连接句柄重置为0,并发出命令将计时器设置为每3秒(3000毫秒)触发(执行)。
.z.pc : { h::0; value “\\t 3000”}
计时器处理程序(.z.ts)尝试重新打开连接。 成功后,它会关闭计时器。
.z.ts : { h:: hopen `::5001; if [h>0; value “\\t 0”] }
.z.pi[]
PI代表过程输入。 它被称为任何类型的输入。 它可用于处理控制台输入或远程客户端输入。 使用.z.pi [],可以验证控制台输入或替换默认显示。 此外,它还可用于任何类型的日志记录操作。
q).z.pi
'.z.pi
q).z.pi:{">", .Q.s value x}
q)5+4
>9
q)30+42
>72
q)30*2
>60
q)\x .z.pi
>q)
q)5+4
9
.z.pw
它是验证连接处理程序(用户身份验证)。 当向kdb +会话打开连接时,它会添加额外的回调。 它在-u/-U检查之后和.z.po(端口打开)之前调用。
.z.pw : {[user_id;passwd] 1b}
输入是userid (符号)和password (文本)。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论