python 3 multiprocessing freeze_support () устанавливает метод запуска для появления? - PullRequest
0 голосов
/ 02 августа 2020

ну, недавно я столкнулся с зависанием моих приложений в долгосрочной перспективе. моя программа использует бесконечное время l oop для постоянной проверки новых процессов из redis db, и если есть какое-либо задание для работы, оно порождает новый процесс для его запуска в фоновом режиме.

поэтому у меня была проблема с его замораживанием через 20 минут, иногда через 10 минут. мне потребовалась одна неделя, чтобы понять, что проблема возникает из-за отсутствия этой строки до моего while l oop:

multiprocessing.set_start_method('spawn')

похоже, что python не делает этого на Windows и поскольку windows не поддерживает форк, он застрянет.

в любом случае, похоже, это решит мою проблему, но у меня есть другой вопрос.

, чтобы создать файл exe для этого программа с чем-то вроде pyinstaller Мне нужно добавить еще одну строку, как показано ниже, чтобы убедиться, что она не зависает при выполнении exe:

multiprocessing.freeze_support()

Я хочу знать, это freeze_support() автоматически устанавливает метод запуска на 'spawn' тоже? Я имею в виду, следует ли мне использовать обе эти строки или просто запустить одну из них? если да, то какой из них мне следует использовать с этого момента?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...