У меня есть приложение Flask, работающее под Gunicorn, с использованием рабочего типа sync с 20 рабочими процессами. Приложение считывает много данных о запуске, что требует времени и использует память. Хуже того, каждый процесс загружает свою собственную копию, что заставляет ее занять еще больше времени и займет 20X памяти. Данные статичны и не меняются. Я хотел бы загрузить его один раз, и все 20 сотрудников будут делиться им.
Если я использую параметр preload_app
, он загружается только в одном потоке и изначально занимает только 1X-память, но затем кажется, что он равен 20X после начала запроса. Мне нужен быстрый случайный доступ к данным, поэтому я 'd скорее не делать IPC.
Есть ли способ поделиться статическими данными между процессами Gunicorn?