如何运行kdb+;在一天结束时(午夜除外)打勾

如何运行kdb+;在一天结束时(午夜除外)打勾,kdb,Kdb,我想跑步。纽约时间下午5点结束 正在考虑的备选方案: 将机器TZ设置为欧洲/赫尔辛基-使午夜=纽约时间下午5点 将机器TZ设置为UTC-并在22:00运行 将机器TZ设置为NY并在17:00运行 >考虑什么? 有没有人有过这样做的经验,希望与大家分享?一种方法是设置计时器 首先定义以下功能: q) .z.ts:{ if (current time=5 PM) then call .u.end } 然后设置一个定时器频率。例如,下一行将每隔2秒调用'.z.ts'

我想跑步。纽约时间下午5点结束

正在考虑的备选方案:

  • 将机器TZ设置为欧洲/赫尔辛基-使午夜=纽约时间下午5点
  • 将机器TZ设置为UTC-并在22:00运行
  • 将机器TZ设置为NY并在17:00运行<这会很好
我找不到如何在非午夜时间运行u.end

<> P> >考虑什么?
有没有人有过这样做的经验,希望与大家分享?

一种方法是设置计时器

首先定义以下功能:

        q) .z.ts:{ if (current time=5 PM) then call .u.end }
然后设置一个定时器频率。例如,下一行将每隔2秒调用'.z.ts'

        q) \t 2000

参考资料:

您必须修改
勾选.q
以满足您的新条件。您可以在此处看到代码:


。。。计时器调用的
ts
函数只是检查
.u.d
是否小于
.z.d
。如果条件允许,可以通过执行类似于
.z.p>.u.d+17:00
的操作来更改该条件。(当然,您需要在最后一次启动.u.end时进行更新,以避免在同一天继续满足此条件:)

假设采用普通kdb+勾选设置,其中:

  • 5010是自动售票机工厂
  • 5011是实时数据库(RDB)
  • 5012是历史数据库(HDB)
连接到自动售票机设备,并使用零参数调用函数
.u.endofday

q)h:hopen 5010 / ticker plant
q)h".u.endofday[]"
q)hclose h
q)h:hopen 5011 / RDB
q)h"" / wait for RDB to complete last async request
q)hclose h

上面的命令可以通过shell脚本+UNIX cron自动执行。

这是一个很好的解决方案,但是可以自动递增
.u.d
,这不一定是必需的。