FedorArbuzov / twitter-crawler-test-assignment

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Тестовое задание по скачиванию информации о твиттах

В сборке есть postgres для сохранения информации, бекенд для отображения информации, воркер для скачивания на asyncio и redis как очередь для общения между ними. Сервис был протестирован через сваггер.

Также была протестирована скорость работы:

  1. Скорость в синхронном формате работы для сравнения: 744 секунды
  2. Скорость работы в асинхронном формате: 11 секунд

Что можно еще улучшить:

  1. Сделать очередь через rabitmq и отправлять задачи батчами
  2. Перезакладывать задачи в очередь с таймаутом если получена ошибка too many requests или что-то такое, сейчас этого нет. У твиттера есть описание своих rate limit-ов
  3. Добавить consul для всех ключей
  4. Добавить orm и миграции, сейчас работа с базой сделана через asyncpg
  5. Покрыть сервис тестами, добавить логи

About


Languages

Language:Python 88.9%Language:Dockerfile 11.1%