有没有办法在python中的特定超时之后从队列中执行任务?

问题描述:

让我们假设我有n不同数量的任务,并且任务流将以不同的给定time(t)出现。有没有办法确保每个任务在给定time(t)后执行?我使用python来创建和执行这些任务。有没有办法在python中的特定超时之后从队列中执行任务?

+0

https://docs.python.org/3/library/sched.html –

在排序列表中保留所需的执行时间。
等待直到列表开始的时间。
删除列表中的第一项并执行任务。
重复。

+0

在这种方法中,每次带有时间(t)的新作业进入队列时,我都必须重新排列队列。这会增加问题的时间复杂性。 – Shailesh

+0

也许不可能为'insert'和'remove'操作都达到O(1)的复杂度。无论如何,看看'bisect'模块:https://docs.python.org/2/library/bisect.html,即'bisect.insort'。 – dlask

+0

@ Shail。你的队列有多大?当list被预分类时,'append'后面跟'sort'是O(n)。通常这种方式运作良好,易于理解。 –