kdb 中 table 更新的回调

callback on table update in kdb

我想在 kdb 中实现客户端服务器机制,客户端可以在其中自行注册,以便在某些 table 更新时接收回调。

我知道回调在 kdb 中是如何工作的,我无法弄清楚如何将服务器中的 table 更新绑定到一个函数,从中我可以从客户端调用“callback”。

基本上你想实现'Publish-Subscribe'机制。 KDB 在 tick 库中已经有一个脚本 'u.q',它提供: https://code.kx.com/q/cookbook/publish-subscribe/

在服务器上,它维护客户端列表及其句柄、订阅 table 和回调函数。您必须更改处理数据的服务器上的功能 insert/update 才能同时发布数据。

q)  .u.pub[table name; table data]

这将负责调用为此table注册的每个客户端的回调函数。

在客户端,创建与发布者的连接并调用库函数进行订阅。

q) .u.sub[tablename;list_of_symbols_to_subscribe_to]

您还可以查看示例发布者和订阅者代码:https://github.com/KxSystems/cookbook/tree/master/pubsub