ну, недавно я столкнулся с зависанием моих приложений в долгосрочной перспективе. моя программа использует бесконечное время 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'
тоже? Я имею в виду, следует ли мне использовать обе эти строки или просто запустить одну из них? если да, то какой из них мне следует использовать с этого момента?