Задать вопрос
@bopox88

Какую архитектура и технологии выбрать для учебного проекта на Python?

Изучаю Python, и нужна практика, поэтому решил сделать учебный/pet-проект. Задачи проекта:
  • получение от пользователя наименования товара;
  • предварительный парсинг магазина с целью найти товар;
  • направление пользователю ссылки на найденный товар для подтверждения;
  • после подтверждения постановка товара на ежедневный парсинг;
  • уведомление пользователя об изменении цены на 5%+.

Потом список функций можно нарастить, пока хочется реализовать именно этот минимум.

Погуглив информацию про возможные архитектурные подходы и технологии, решил сделать нечто такое:
639592ce343b7868426032.png

Бесспорным слабым местом такого подхода будет парсер, поэтому точно потребуется создание очереди. Для очереди хочется сделать "костыль"/"велосипед", а не использовать готовое решение (учеба же). Потом можно будет прикрутить RabbitMQ. Пока вижу следующие решения:
  • реализация очереди на API-сервере. Сервер будет вести очередь парсинга и "пулять" запросы в парсер. После получения ответа удалять задачу из очереди;
  • реализация очереди на самом парсере. Но для этого, видимо, нужно будет к парсеру прикрутить простенькую БД.


Посоветуйте, пожалуйста, что можно улучшить в архитектуре/технологиях? Проект учебный, пользоваться им буду я и друзья/знакомые, поэтому нагрузка будет небольшая, но хочется все же сделать проект, который использует более-менее промышленные технологии.
  • Вопрос задан
  • 134 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest
Работаю с Python/Django
Вообще не очень понятно - каким боком тут затесался django.
По моему, достаточно библиотеки aioscheduler или банального cron`а. Что-то одно из этого будет каждый заданный промежуток времени запускать скрипт парсера, который в свою очередь будет брать данные для парсинга из базы.
А сами данные в базу можно спокойно добавлять и на стороне aiogram.
UPD: Ну и сообщения можно отправлять либо прямо из парсера, но только с помощью api телеги и aiohttp, если запускаете асинхронно.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы