Как запустить несколько экземпляров приложения Django? - PullRequest
0 голосов
/ 17 апреля 2020

Этот вопрос не связан с кодом. Я просто хочу знать способ запуска нескольких экземпляров приложения django и, если это вообще возможно, в первую очередь.

Я создаю django приложений и размещаю их на Apache. С приложениями я заметил конфликт между несколькими пользователями, получающими доступ к веб-приложению.

Допустим, это веб-приложение. Если один пользователь посещает приложение и запускает скребок, другой пользователь, получающий доступ к сайту из другого местоположения, не сможет посетить приложение или запустить скребок, пока не завершится очистка, начатая первым пользователем.

Действительно ли возможно сделать его независимым для всех разных пользователей, обращающихся к приложению?

1 Ответ

0 голосов
/ 17 апреля 2020

Есть несколько способов подойти к этому. Возможно, вы захотите поместить свое приложение в контейнер (поиск Google: docker {ваш стек})

Затем реализуйте что-то вроде Docker Swarm или Kubernetes, чтобы выделить несколько экземпляров вашего приложения.

При этом вы могли бы подумать о том, как провести рефакторинг своего приложения, чтобы позволить нескольким пользователям. Похоже, ваш процесс очистки блокирует вещи. Но на самом деле нет причин, по которым ваш сервер должен блокироваться во время этого.

Возможно, было бы лучше создать ваше приложение, чтобы при получении запроса, например, при посещении сайта, сервер выплачивал запрошенную веб-страницу. Когда пользователь запрашивает выполнение скрапа / задачи, сервер вызывает асинхронно ваш сервис или скрипт Scaper.

Таким образом, ваше приложение все еще может функционировать, пока выполняется очистка. Это было бы НАМНОГО более эффективно по ресурсам (и, вероятно, проще), чем раскручивание десятков или сотен экземпляров всего вашего приложения.

tl; Dr: контейнеризация для нескольких экземпляров Рефакторинг приложения, чтобы один пользователь не мог заблокировать его ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...