Как обновить приложение Dlotly Dash новыми данными из базы данных - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть приложение Flask (Plotly Dash), которое извлекает данные из БД, которая обновляется каждый день. Развернув приложение на AWS, я запускаю приложение с gunicorn / nginx. Проблема в том, что данные, используемые в приложении, взяты из последней версии Gunicorn, а не из самой последней базы данных.

Решение, которое я подумал, - добавить атрибут к команде gunicorn (например, --reload) с таймером для автоматического перезапуска gunicorn ежедневно. Возможно ли это или вообще есть какие-то другие обходные пути?

РЕШЕНИЕ : https://community.plot.ly/t/how-to-refresh-data-on-fly/13069

1 Ответ

1 голос
/ 04 ноября 2019

Вы можете подать сигнал Gunicorn для перезагрузки с помощью сигнала SIGHUP . Чтобы попробовать это вручную, вы можете сделать это, например, с помощью killall -s 1 gunicorn, для ежедневной перезагрузки вы, вероятно, захотите использовать что-то вроде cron или какую-то специальную службу AWS. Похоже, что AWS имеет некоторую документацию по этому вопросу.

Использование killall неоптимально, так как оно работает с именем процесса. Он может сломаться, если имя меняется (например, gunicorn переименовывает себя, чтобы идентифицировать с именем приложения), или если запущено более одного gunicorn. Но до тех пор, пока это единственный вариант использования сервера, все должно быть в порядке.

...