Я настраиваю приложение Flask с Gunicorn в среде Docker.
Когда я хочу ускорить свои контейнеры, я хочу, чтобы мой контейнер Flask создавал таблицы базы данных (на основе моих моделей), если моя база данных пуста.Я включил функцию в свой файл wsgi.py, но, похоже, она запускается при каждой инициализации работника.После этого я попытался использовать серверные перехватчики в моем конфигурационном файле gunicorn.py, как показано ниже.
"""gunicorn WSGI server configuration."""
from multiprocessing import cpu_count
from setup import init_database
def on_starting(server):
"""Executes code before the master process is initialized"""
init_database()
def max_workers():
"""Returns an amount of workers based on the number of CPUs in the system"""
return 2 * cpu_count() + 1
bind = '0.0.0.0:8000'
worker_class = 'eventlet'
workers = max_workers()
Я ожидаю, что gunicorn автоматически активирует функцию on_starting, но перехватчик, похоже, никогда не сработает.Приложение, кажется, запускается нормально, но когда я пытаюсь сделать запрос, который хочет вставить запись базы данных, он говорит, что таблица не существует.Как мне запустить ловушку on_starting?