выполняет ли gunicorn также, если __name __ == ‘__main__’

#python #flask #discord #discord.py #gunicorn

Вопрос:

например, у меня есть такая команда gunicorn --bind 0.0.0.0:8000 --workers = 3 --threads = 3 manage: app , которая затем manage: app извлекается из manage.py файла

 app = create_app ()
 

__name __ == '__ main__' функция if тоже выглядит так

 if __name__ == '__main__':
     flask_thread (func = run)
     client.run (os.getenv ('TOKEN'))
 

казнен при запуске Gunicorn?

Ответ №1:

Короткий Ответ

Нет, gunicorn импортирует вашу app переменную и вызывает ее. Это if не будет выполнено.

Более длинный Ответ

__name__ является специальной переменной. Если мы запустим ваш модуль напрямую, используя python manage.py , то значение будет __main__ . Итак, if это Правда.

Но, если мы запустим ваш модуль, импортированный другим (включая gunicorn), используя from manage import app что-то вроде этого, значение будет 'app' или 'manage.app' (вы можете проверить это самостоятельно). Само собой разумеется, if что условие будет Ложным.

Комментарии:

1. итак, если нам нужна какая-то конфигурация, запущенная внутри колбы, нам нужно настроить create_app функцию включения? @тегар

2. @perymerdeka да, мы поместили конфигурацию туда