У меня есть скрипт на Python, который выполняет некоторые работы.Я использую multiprocessing.Pool
, чтобы несколько работников делали для меня какие-то команды.
Моя проблема - когда я пытаюсь завершить сценарий.Когда я нажимаю Ctrl-C , мне бы хотелось, чтобы каждый работник немедленно очищал свой эксперимент (который представляет собой некоторый пользовательский код или даже команду подпроцесса, а не только освобождение блокировок или памяти) и останавливался.
Я знаю, что могу поймать Ctrl-C с помощью обработчика сигнала.Как сделать так, чтобы все работающие в данный момент рабочие из multiprocessing.Pool
завершали свою работу, все еще выполняя свою команду очистки?
Pool.terminate()
не будет полезным, поскольку процессы будут завершены без очистки.