3

Я создаю веб-приложение, и мне нужно использовать архитектуру, которая позволяет мне запускать ее на двух серверах. Приложение периодически сбрасывает информацию с других сайтов и на вход от конечного пользователя. Для этого я использую Php + curl, чтобы очистить информацию, Php или python, чтобы проанализировать ее и сохранить результаты в MySQLDB.Архитектура веб-приложений и серверы приложений?

Затем я буду использовать Python для запуска некоторых алгоритмов по данным, это произойдет как периодически, так и на входе от конечного пользователя. Я собираюсь кэшировать некоторые из результатов в базе данных MySQL, а иногда, если это специфично для пользователя, пропустите хранение данных и отправьте их пользователю.

Я думаю об использовании Php для веб-сайта на отдельном веб-сервере, запуске Php spider, MySQL DB и python на другом сервере.

Какие рамочные работы следует использовать для такого рода работ? Является ли MVC и Cakephp хорошим решением? Если это так, я смогу контролировать и контролировать код Python, используя его?

Благодаря

ответ

2

Как это осуществить?

Слишком большой вопрос для ответа здесь.Конечно, вам не нужны 2 набора кода для скребков (1 для запланированных, 1 для спроса) в дополнение к добавленному усложнению, вы действительно не хотите запускать задание, которое займет неограниченное время для завершения в потоке сгенерированный запросом на ваш веб-сервер, - запросы пользователей на очистку должны запускаться через механизм планирования и сообщаться пользователям (хотя при необходимости вы можете использовать опрос Ajax, чтобы создать иллюзию, что это происходит в том же потоке).

Какие рамочные работы следует использовать?

Рамки не являются волшебными пулями. И вы не должны выбирать структуру, основанную прежде всего на характере приложения, которое вы пишете. Конечно, если конкретная критическая функциональность исключается определенной структурой, тогда вы используете неправильную структуру, но по моему опыту, которой никогда не было, вам просто нужно написать код самостоятельно.

используя нечто более сложное, чем хрон

Да, хрон, вероятно, не правильный путь по многим причинам. Если бы это был я, я бы посмотрел на запись демона, который планировал бы scrapes (и принимать подключения из сценариев веб-страниц, чтобы вставить дополнительные царапины). Но я бы запускал царапины как отдельные процессы.

Является ли MVC хорошей архитектурой для этого? (Я новичок в MVC, архитектура и т.д.)

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

(Ваше приложение может содержать некоторые шаблоны MVC, но оно также должно содержать множество других).

C.

1

Я думаю, что у вас уже есть четкое представление о том, как организовать слои.

Прежде всего вам понадобится веб-каркас для вашего front-end.
У вас здесь много choices, Cakephp afaik - хороший выбор, и он призван заставить вас следовать шаблону дизайна MVC.
Затем вам нужно будет создать свою базу данных, чтобы хранить то, что пользователи хотят разузнать.
Ваш db будет доступен вашему веб-приложению для хранения запросов пользователей, используя ваш php-скрипт, чтобы узнать, что нужно очистить, и, наконец, вашей партией python, чтобы подтвердить пользователям, что запрошенные данные доступны.

Возможный упрощённый сценарий: зарегистрировать

  1. пользователя на ваш сайт
  2. команды
  3. пользователя, чтобы захватить случайную страницу из Википедии
  4. запроса сохраняется, хотя приложения CakePHP к БД
  5. Cron PHP пакетный запуск и проверка db для новых запросов
  6. Пакет содержит новый запрос и царапины из Википедии
  7. B ATCH обновляет БД с Царапиной флагом
  8. Cron питона партия начинается и проверяет базу данных для нового Царапины флага
  9. Batch основывает новую Царапину флага и разобрать Википедию, чтобы извлечь некоторые теги
  10. Пакетных обновления БД с решенным флагом
  11. пользователя получает запрашиваемую информацию о своем профиле.