Обмен статическими глобальными данными между процессами в приложении Gunicorn / Flask

У меня есть приложение Flask, работающее под Gunicorn, использующее рабочий тип синхронизации с 20 рабочими процессами. Приложение читает много данных при запуске, что занимает много времени и использует память. Хуже того, каждый процесс загружает свою собственную копию, что заставляет его занимать еще больше времени и занимать в 20 раз больше памяти. Данные статичны и не меняются. Я хотел бы загрузить его один раз и сделать так, чтобы все 20 рабочих поделились им.

Если я используюpreload_app при установке он загружается только в одном потоке и первоначально занимает только 1X памяти, но затем, кажется, возвращается к 20X, как только начинают поступать запросы. Мне нужен быстрый произвольный доступ к данным, поэтому я бы предпочел не делатьIPC.

Есть ли способ обмена статическими данными между процессами Gunicorn?

Ответы на вопрос(2)

Ваш ответ на вопрос