У меня есть пул процессов в python с использованием from multiprocessing import Pool
. Я передаю этим процессам различные функции для запуска, вызывая функцию Pool.apply_async
. Если я введу ошибку в одну из этих функций (например: строка кода, например 5/0
), ожидаемый отчет командной строки ZeroDivisionError: integer division or modulo by zero
никогда не появляется, и программа никогда не заканчивается. Даже если я введу функцию обратного вызова при вызове Pool.apply_async
, функция обратного вызова никогда не будет вызвана, если функция, которую должен выполнить процесс, имеет ошибку.Процессы в многопроцессорной обработке. Не сообщают об ошибках времени выполнения
Как я могу обрабатывать эти процессы в отчетах пула и прекращать работу, если что-то пойдет не так?
Отлично подходит для информации. Большое спасибо! Я предполагаю, что я перейду на python 3.2, чтобы сделать вещи проще. –
@ASDF Я бы порекомендовал идти к 3.4, если возможно (это намного более новый), но да, Python 3.x облегчит вам жизнь. Если это не слишком много для переноса вашей программы, пойдите для нее. – dano