Я ищу лучший вариант для перезагрузки данных в развернутом приложении.Оптимальное значение определяется как, оно не должно приводить к 500 с и должно обновлять данные (не прерываться молча), не должно блокировать работу слишком долго, но не должно быть 500 с, и обновление является приоритетом.
Приложение является приложением с ограниченным процессором, которое я масштабирую, добавляя больше рабочих и ядер.Приложение загружает list
или dict
при включении через
api.add_resource(
Cars,
'/cars',
resource_class_kwargs={'carslist': carslist})
Проблема заключается в том, что каждые 24 часа или иногда чаще меняется список автомобилей.Я могу создать метод POST, с помощью которого я отправляю новый файл в приложение, или заставить его загрузить новую версию и т. Д. Мой вопрос, однако, если я разверну это с помощью gunicorn и скажу 8 рабочих, как я могу убедиться, что у каждого рабочего естьактуальный carslist
.
В соответствии с документами для gunicorn, я также могу грациозно перезапустить gunicorn с помощью HUP
.Итак, лучше ли перезапускать приложение и загружать новый carslist
или как сделать запрос, по которому вызывается каждый работник?
Я использую gunicorn за nginx на докере, и это приложение не подключено к Интернету, поэтому безопасность не имеет значения, но я иногда вижу запросы на 10000 с в секунду.