Python Web Backend - PullRequest
       5

Python Web Backend

1 голос
/ 16 апреля 2011

Я опытный разработчик Python, начинающий работать над веб-сервисом бэкэнд-система. Система передает данные (постоянно) из Интернета в База данных MySQL. Эти данные позже отображаются на стороне интерфейса (там нет связи между внешним интерфейсом и внутренним интерфейсом). Бэкэнд система постоянно загружает информацию о рейсах из Интернета (некоторые из данные выбираются через API, а некоторые - путем загрузки и анализа текстовые / xls файлы). У меня уже есть скрипт, который загружает данные, анализирует его и вставляет в базу данных MySQL - все в большом цикле. сторона внешнего интерфейса - это просто набор страниц php, которые правильно отображают данные путем запроса к серверу MySQL.

Очень важно, чтобы этот веб-сервис был надежным, сильным и надежным. Поэтому я искал подходящие способы его разработки и наткнулся на следующие части, составляющие мою систему:
1) django как фреймворк (для HTTP-соединений и для использования Piston)
2) Piston как поставщик API (это здорово, потому что тогда мой интерфейс может использовать API вместо того, чтобы фактически выполнять запросы)
3) SQLAlchemy как слой БД (мне не нравится тот небольшой контроль, который вы получаете при использовании django ORM, я хочу иметь возможность запускать более сложную структуру БД)
4) Apache с mod_wsgi для запуска всего
5) И, наконец, Celery (или django-cron) фактически запустил мой бесконечный цикл, который извлекает данные из Интернета - надеюсь, в каком-то формате организованных задач). Это часть, в которой я менее всего уверен, и любые указатели приветствуются.

Все это звучит великолепно. Я использовал Django, прежде чем писать веб-сайты (иначе обработчики запросов, которые возвращают данные). Тем не менее, кроме использования сельдерея или django-cron, я не могу понять, насколько он подходит для постоянной подачи данных.

Я просто хотел показать вам, ребята, чтобы выслушать ваши идеи / комментарии. Будем весьма благодарны за любые ваши входные данные / указатели на документацию и / или другие библиотеки!

1 Ответ

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

Если вы собираетесь использовать SQLAlchemy, я бы воздержался от использования Django: Django - это хорошо, если вы используете весь стек, но, поскольку вы собираетесь срывать модели, я не вижу большой ценности в его использовании, и я взглянул бы на другой вариант (возможно, подойдут Pylons или чистый старый CherryPy).

Тем более, если FE не будут выполнять запросы, а будут только спрашивать провайдеров API.

Что касается надежности, меня больше устраивает запуск отдельных процессов fcgi с помощью supervise и использование более легкого веб-сервера (ligty / nginx), но это дело вкуса.

Для части с «бесконечным циклом» это зависит от того, какое поведение вы хотите: если есть проблема с источником, хотите ли вы просто пропустить шаг или повторить его несколько раз при резервном копировании источника?

Периодические задачи могут быть хороши для первых, в то время как cron, который будет просто создавать задачи очистки, лучше для последних.

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