【问题标题】:How can I schedule tasks efficiently?如何有效地安排任务?
【发布时间】:2021-11-17 07:19:46
【问题描述】:

我在工作中遇到了一个我根本无法解决的问题。 需要安排一组任务来执行。每个任务都有一个可以执行的时间间隔(validStart 和 validEnd)。最重要的是,用户可以实时提交任务,系统需要相应地安排它们。

我该如何开始呢?

我考虑了一种方法,我:

  • 建立不重叠的任务列表
  • 保留这些列表的某种队列,工作线程可以在其中检索一组任务并执行它们

但如果用户不断提交新任务,这并不完全有效。

整个解决方案也需要可靠。 我找不到图书馆或至少可以适应我的问题的东西。

【问题讨论】:

    标签: algorithm scheduler scheduling taskscheduler


    【解决方案1】:

    您可以使用多重赋值段树结构来解决这个问题。当您添加一个 id 编号间隔为 [a, b] 的新任务时,将 id 值分配给段 [a, b] 上的树元素。现在,当您想知道在时间 i 执行哪个任务时,请向树询问段 [i;i] 上的总和 - 这是在时间 i 可以执行的任务数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 2012-07-12
      • 2018-05-02
      • 2012-05-02
      • 2013-03-30
      • 2021-12-05
      • 2011-05-15
      相关资源
      最近更新 更多