import concurrent.futures
import time
def process_one(i):
try:
print("dealing with {}".format(i))
time.sleep(50)
print("{} Done.".format(i))
except Exception as e:
print(e)
def process_many():
with concurrent.futures.ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
executor.map(process_one,
range(100),
timeout=3)
if __name__ == '__main__':
MAX_WORKERS = 10
try:
process_many()
except Exception as e:
print(e)
Документы говорят:
__next__()
итератор вызываетconcurrent.futures.TimeoutError
если__next__()
и результат не доступен послеtimeout
секунд от исходного вызова доExecutor.map()
Но здесь сценарий не вызывал каких-либо исключений и продолжал ждать. Какие-либо предложения?