Бесконечный цикл с потоками 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?