首页 > 解决方案 > queue.get() 具有 n 个元素的累积超时

问题描述

queue.Queue.get方法有一个timeout参数来等待一个元素的存在来检索。

我想“一次”检索“最多”25 个元素,等待“最多”5 秒。我怎样才能做到这一点?

标签: pythonpython-3.xqueuebuffer

解决方案


只需计算剩余时间(out)。

TIMEOUT=5

t = time.monotonic()+TIMEOUT
items = []
for n in range(25):
    try:
        items.append(q.get(timeout=t-time.monotonic()))
    except queue.Empty:
        break

推荐阅读