我想在纽约时间下午5点运行.u.end。
正在考虑的替代方案:
我无法找到如何在非午夜时间运行。
需要考虑的含义是什么?
有没有人有这样做的经验,他们想分享?
答案 0 :(得分:7)
您必须修改tick.q
才能满足您的新条件。你可以在这里看到代码:
https://github.com/KxSystems/kdb-tick/blob/master/tick.q
...计时器调用的ts
函数只检查.u.d
是否小于.z.d
。如果条件改变,可能通过做.z.p > .u.d+17:00
之类的事情。 (当然你需要更新你最后一次煽动.u.end以便在同一天不能满足这个条件:))
答案 1 :(得分:1)
一种方法是设置计时器。
首先定义以下功能:
q) .z.ts:{ if (current time=5 PM) then call .u.end }
然后设置定时器频率。对于前者以下行将调用' .z.ts'每2秒。
q) \t 2000
答案 2 :(得分:0)
假设有一个vanilla kdb + tick设置,其中:
连接到自动收录器工厂并使用零参数调用函数.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自动执行。