Бесконечный цикл с потоками ThreadPoolExecutor

Всем привет. Не могу решить такую задачу. Как через ThreadPoolExecutor() реализовать бесконечную очередь, чтобы постоянно поддерживалось N кол-во потоков.

Есть код (как пример)

    all_targets = iter(get_all_targets(db))

    with concurrent.futures.ThreadPoolExecutor(max_workers=threads) as executor:

        for _ in executor.map(worker, all_targets):
            pass

Сейчас он работает так: потоков в кол-ве threads поддерживается, пока all_targets не закончится. То есть если потоков 10, то постепенно к концу all_targets будет оставаться 9, потом 8 и т.д. до 0.

Как мне написать код, чтобы all_targets был как бы бесконечным, и если кол-во потоков активных заканчивалось, то all_targets начинался сначала, чтобы ПОСТОЯННО поддерживалось кол-во потоков равным threads?


Ответы (0 шт):