订阅者的订阅详细信息

时间:2019-03-14 17:08:42

标签: kdb

我已经建立了一个tickerplant,但我需要每分钟记录一次订户的订阅详细信息(他们正在收听的表和符号)。

我知道.z.ts函数以及正确的函数应该在代码之前具有\ t 60000的事实。

是否有一种简单的方法可以每分钟发布订阅者的订阅详细信息?

2 个答案:

答案 0 :(得分:3)

如果您的tickerplant工作在非批处理模式下(意味着您没有在启动时在命令行上指定计时器),那么您所需要做的就是修改.z.ts函数-通常为{{ 1}}-还可以通过向下游推送实时记录或将其写入文件来在订阅服务器上发布存储的数据表。该表将使用.z.ts:{ts .z.D}(用户连接)或.z.po(用户启动的订阅)填充,并在用户断开连接(.u.sub)时进行修改。有关如何捕获用户信息的想法,请参见:https://code.kx.com/q/cookbook/using-dotz/#trackclientsq

如果您希望将其发布到下游而不是写入文件,则需要将此表设置为.z.pc中的其他可订阅表,以管理谁订阅此新表。

如果您使用来自Kx的香草去屑植物代码作为去屑植物的基础,则默认情况下,非分批处理模式会将计时器设置为1秒,但您可以将其更改为1分钟,但这意味着您的一天结束触发时间可能要迟一分钟。这可能没什么大不了的。

如果您使用的是批处理模式,并且它不是一分钟计时器,那将比较棘手,因为您必须有一个计时器来管理批处理发布,而一个计时器则要管理订阅信息的分钟发布。可以做到,但是那时候开始变得混乱

答案 1 :(得分:1)

您可以考虑采用其他方法。订阅详细信息的更改本质上是由特定事件触发的状态更改-调用sub或add,断开连接,也许还有一些自定义事件,例如unsub。

您可以使用记录当时状态变化的逻辑来修改或包装这些功能和事件。