【问题标题】:Pull times from a database and send out messages at that particular time从数据库中提取时间并在该特定时间发送消息
【发布时间】:2012-07-16 18:55:55
【问题描述】:

我有一个 q/kdb 数据库,其中一列有时间。我想获取每一行中的数据,并在每行时间列中指定的时间与 tibco 集合点一起发送出去。 最好的方法是什么?

似乎可以使用 java timer 和 delay 类,或者使用一些第三方的东西。 注意:这里的复杂部分是我不是定期发送,我需要去数据库确定每条消息的发送时间。

例如,如果列中的前两个值是 14:00:00.000 14:30:00.000,那么第一条消息将在下午 2 点发送,第二条消息将在下午 2:30 发送。

谢谢!

【问题讨论】:

    标签: java delay sendmessage tibco kdb


    【解决方案1】:

    看看ScheduledExecutorService,它有一个schedule(Runnable command, long delay, TimeUnit unit) 方法可以做你想做的事

    【讨论】:

    • 这似乎是一个不错的选择。尽管理想情况下我正在寻找的是在特定时间执行某些操作。因此,例如,如果数据库显示下午 2 点,我希望它在下午 2 点执行。在这种方法中,我必须设置一个延迟,这可能最终不会很准确。
    • 它将为您提供纳秒级精度,因此除非您希望事件恰好在 @ 02:00:00.00 发生,否则您应该能够在合理的误差范围内计算延迟。或者,您可以在 Google 上搜索一个 cron 作业实施,例如 sauronsoftware.it/projects/cron4j ...我发现列出了一个数字。
    • 我过去曾使用 ScheduledExecutorService 取得巨大成功,将作业安排在近五分钟到未来几天内,但这只是我
    • 嗯,我想。我想我不太了解如何使用它。我想此时我会尝试使用日历查找当前时间,并将其与数据库中的时间进行比较以确定延迟。我无法将毫秒与纪元进行比较,因为我会有发生在较早日期的时间。
    • 对于 scheduleexecutorservice 它也表示其中一个参数是可运行的。我不太确定这意味着什么。我想我不只是放入一个我想执行的方法,而是我需要创建一个新线程?您对如何满足 scheduleexecutorservice 的第一个参数有什么建议吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 2019-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多