考虑到kdb+ tick的设置,如何通过套接字推送表?
在 tick 中,可以向a
订阅一个进程(比方说)tickerplant
,然后继续推送已订阅的'代码'的数据随着新数据的到来,'到a
。
我想做同样的事情,但我想知道如何。据我所知,q
进程之间的进程间通信只是将命令从一个进程传输到另一个进程的能力,这样命令就会在另一个进程上执行。
那么如何才能在进程之间传输完整的表?
我知道在 tick 中执行此操作的方法是.u.pub和.u.sub,但我不清楚如何在进程之间传输表。
所以我有两个问题:
kdb+ tick
如何做到这一点?答案 0 :(得分:1)
让我们理解这样做的简单过程:
我们有一台服务器'S'和一台客户'C'。当'C'调用.u.sub函数时,该函数代码使用其主机和端口连接到'S',并使用订阅参数调用'S'上的特定函数(假设为'request')。
获取此请求后,“S request”函数会对其订阅表进行以下输入,并为订阅请求进行维护。
- >客户端的主机和端口(传入请求)
- >订阅参数(例如客户发送sym`VOD.L进行订阅)
现在当'S'从feed获得任何数据更新时,它会通过它的订阅表并检查其订阅参数列值(在我们的例子中是sym)与传入数据匹配的条目。然后它使用表中的主机和端口连接到每个端口,并使用新数据调用它们的“upd”函数。
唯一的问题是,客户端应该定义'upd'功能。
这是一个非常基本的过程。 KDB +使用它进行额外的优化和功能。对于前者更优化的结构,用于维护订阅表,日志维护,重放日志,取消订阅,恢复逻辑,发布计时器等等。
有关更多详细信息,您可以在'u'命名空间中检查函数的定义。