queue.get () с совокупным таймаутом для n элементов - PullRequest
0 голосов
/ 17 октября 2018

В методе queue.Queue.get есть параметр timeout для ожидания наличия одного элемента для извлечения.

Я хотел бы получить "максимум" 25 элементов водин раз ", ожидая" самое большее "5 секунд.Как мне этого добиться?

1 Ответ

0 голосов
/ 17 октября 2018

Просто рассчитайте оставшееся время (вне).

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
...