Compartilhando dados globais estáticos entre processos em um aplicativo Gunicorn / Flask

Eu tenho um aplicativo Flask em execução no Gunicorn, usando o tipo de trabalhador de sincronização com 20 processos de trabalho. O aplicativo lê muitos dados na inicialização, o que leva tempo e usa memória. Pior ainda, cada processo carrega sua própria cópia, o que leva mais tempo e 20X a memória. Os dados são estáticos e não mudam. Eu gostaria de carregá-lo uma vez e ter todos os 20 trabalhadores compartilhando.

Se eu usar opreload_app configuração, ele carrega apenas em um thread e, inicialmente, leva apenas 1X de memória, mas depois parece aumentar para 20X quando as solicitações começam a chegar. Preciso de acesso aleatório rápido aos dados, por isso prefiro não fazerIPC.

Existe alguma maneira de compartilhar dados estáticos entre os processos do Gunicorn?

questionAnswers(2)

yourAnswerToTheQuestion