我正在搜索体系结构或算法,通过该体系结构或算法可以使用有效的模式根据时间触发事件。意思是前。当“太阳,2012年5月6日23:54:11 +0300”到来时,n事件应该立即解雇。 (其中N可以在0和N之间)。
问题不在于扩展已交付的系统(无论是消息队列,还是http get或什么......),而是有效检测应在给定时间触发的事件。或者说事件更加精确,我想我正在询问适当的数据结构以允许有效的O(n)?根据日期窗口轮询n个事件。
参考文献具有重要价值, 感谢。
答案 0 :(得分:0)
Heap允许您保留一组项目,并按成本O(log n)执行以下操作: - 插入任意项目 - 弹出最小的项目 如果我没弄错的话,你可以偷看O(1)处的最小项目。
所以,我认为您应该将事件保存在堆中(按时间指定的顺序),并且: - 每当堆更改时,计划最小(=下一个)时间项的操作 - 对于复杂事件,请使用下次调用的时间再次插入事件
这并非严格基于日期窗口,但我认为对您来说可能更好。