JRazor
@JRazor
Senior StarkOverFlow Programmer

Получение почты + небольшой backend + небольшое API: чего использовать?

Доброго времени суток!

Есть несколько стульев: Twisted, Tornado и стандартная библиотека POP/IMAP + потоки в Python 2.7 + Flask. Плюсы и минусы описывать не буду - я надеюсь на ответы аудитории, которая знает больше, чем я.

Основная задача - парсинг электронных писем и извлечение вложений по критериям. В продолжении будет легкий бэкэнд и пара-тройка API запросов.

Что выбрать из перечисленного или не перечисленного? Есть какие-то здравые идеи? Использование двух фрэйморков не предлагать.
  • Вопрос задан
  • 545 просмотров
Решения вопроса 1
@nirvimel
Twisted, Tornado

Ничего из этого. Поясню: Во-первых, у обоих собственные нестандартные реализации IMAP (к Tornado в принципе возможно прикрутить стандартную), это было бы не критично, если бы не прекрасные варианты обойтись стандартной imaplib/IMAPClient. Во-вторых, сами фреймворки: Twisted уже несколько outdated, интерес к нему постепенно угасает, Tornado вроде еще держится за счет своих фанатов, но он тоже слишком специфичен и на данный момент почти не дает уникальных преимуществ (на момент начала его разработки его преимущества были довольно уникальны).

Для любых задач с асинхронным вводом/выводом я советую выбирать из (в порядке приоритета):
  1. Asyncio (python >= 3.4).
  2. Gevent.
  3. Стандартные потоки threading. Их минус в том, что не все I/O вызовы отпускают GIL на время исполнения (особенно это касается python 2), для каждой конкретной задачи приходится писать собственный бенчмарк, чтобы доказать/опровергнуть реальную асинхронность и эквивалентность (в плане производительности) эталонной реализации, например, на gevent.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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