Какие технологии выбрать для конкретной задачи?

Добрый день.
Нужно написать сервис примерно следующего функционала:
В базе лежат адреса, отдающие некую информацию в xml/json. Несколько раз в сутки нужно проходить по ним, парсить, приводя к единому виду, и впоследствии раздавать запрашивающим клиентам.
На каждого клиента свой список адресов. Общий итоговый вес того, что будет отдаваться 0,5-3мб.

Реализовывать буду на python.
Больше всего интересует вопрос, как лучше хранить итоговые данные:
1. Обычный xml файл
2. Возможно стоит посмотреть в сторону бд типо Redis или Mongo, и отдавать оттуда в виде json
3. Возможно какой либо еще вариант?

Ну и сам проект думаю делать на таком стеке технологий:
База данных с адресами и пользователями - PostgreSQL
Фреймворк - Tornado
Очередь заданий на парсинг - RabbitMQ

Ранее с асинхронщиной не связывался, работал только с django/flask, потому хотелось бы услышать мнение более опытных, оптимален ли мой выбор, возможно есть более интересные варианты.

Заранее благодарю за ответы.
  • Вопрос задан
  • 2812 просмотров
Пригласить эксперта
Ответы на вопрос 1
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Работаю (года 3 уже) с клоном торнадо, написанным под twisted - cyclone.io
Все тоже самое как и в торнадо, плюс весь стек технологий twisted, что очень удобно. Асинхронности бояться не нужно, но мозг придется немного вывернуть. В торнадо/циклоне очень удобно работать с отложенными запросами типа comet/websockets, ну и в дополнение в этому к твистед есть библиотеки для работы с монгами и раббитами.
Базу данных выбирайте, какую удобней, можно монго, можно постгрес. И логично хранить результаты в этой же базе. Я за монго.
Если результат нужен только на один раз, на отдачу клиенту, то можно его вообще не хранить в базе, а просто посылать его в очередь rabbitmq, как клиент пришел за результатом - его и отдавать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы