Потоки Django работают по-разному с manage.py и gunicorn

Я работаю в проекте Django с REST API, который должен работать без базы данных, поэтому данные сохраняются в статическом дикте. Приложение использует два различных набора данных, которые предоставляют информацию о дорогах. Один из наборов данных предоставляет статические данные (они могут обновляться не чаще одного-двух раз в год), а другой - динамические данные (обновляются каждые 5 минут). Dict будет содержать элемент для каждой дороги, каждый элемент создается при чтении статического набора данных и обновляется динамическими данными каждые 5 минут при чтении динамического набора данных.

Внутри APP статические данные считываются главным потоком, а затем обновляются раз в месяц вторым потоком. Динамические данные считываются третьим потоком каждые 5 минут.

Когда запрос GET отправляется к REST API, он должен возвращать содержимое этой дикты. Это работает нормально, когда приложение выполняется через команду "manage.py runserver".

Однако, после экспорта проекта в образ docker (который использует gunicorn), когда приложение запущено, запрос GET не получает в ответ динамические данные, а только статические (те, которые считываются главным потоком).

Такое ощущение, что каждый поток хранит данные в отдельном распределении памяти. Как я могу заставить третий (и второй) поток правильно обновлять данные?

Схема и гипотеза АПП

Вернуться на верх