gpt4 book ai didi

java - 我应该使用什么数据结构来实现下一次剩余到期时间最少的调度

转载 作者:太空宇宙 更新时间:2023-11-04 11:55:28 24 4
gpt4 key购买 nike

我将获得特定类型的元素。每种类型都有与其关联的到期时间。每个项目都会保留指定的持续时间(与其类型相关联的到期持续时间),然后继续对其进行处理。

例如,Type1 项目会在 10 秒后过期,而 Type2 项目会在 5 秒后过期。现在考虑 Type1 item1 在时间 1 到达。所以它应该在时间 11 执行。现在考虑我在时间 2 得到 Type2 item2。所以它应该在时间 7 执行。现在考虑我在时间 3 得到另一个 Type2 item3。所以它应该在时间 8 执行。所以最终执行顺序是

  • 时间 7 的项目 2
  • 第 3 项,时间 8
  • 时间 11 时的项目 1

我应该使用什么数据结构来模拟这种行为?它主要看起来像优先级队列,总是将下一个要处理的项目保留在其头部。是否有任何现成的队列服务器可以自动执行此操作。我广泛使用了 kafka,但它似乎不能很好地实现此目的。还有其他选择吗?或者我应该选择普通的 Java 优先级队列?或者我应该寻找与队列完全不同的方法?

更新

  1. 忘了说我可能有很多类型。

最佳答案

使用 DelayQueue解决这个确切的用例

关于java - 我应该使用什么数据结构来实现下一次剩余到期时间最少的调度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41428824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com