Рубрика «asyncio»

Всем привет!

Меня зовут Тарас, я автор библиотеки picows — ультрабыстрых вебсокетов для asyncio. В этой статье я расскажу, почему вообще появилась ещё одна библиотека для веб-сокетов, покажу результаты бенчмарков и заодно порассуждаю о производительности в asyncio.

Предыстория

Читать полностью »

Но очень быстро оказывается, что настоящая сложность не в самих задачах, а в инфраструктуре вокруг них.

Сначала хочется просто запускать код в фоне. Потом появляются ретраи, таймауты, логирование, контроль выполнения. Ещё чуть позже всплывают совсем неприятные вопросы: что делать с пропущенными запусками после рестарта, как не дублировать задачи и где вообще должна жить логика планирования.

В какой-то момент становится очевидно:

ты уже пишешь не задачи, а pipeline вокруг задач

Именно в этот момент мне перестало хватать привычных инструментов.

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же core-разработчик фреймворка Litestar, пакета django-stubs и множества других пакетов для Django.

Сегодня я расскажу, как мы сделали самый быстрый и самый семантически корректный фреймворк для создания апишек на Джанго. Поговорим про конкурентов, покажу очень крутые интеграции, поделюсь своей философией и правилами, которые использовались для создания фреймоврка, ну накину на вентилятор для интереса.

Читать полностью »

При работе с Python да и другими языками программирования часто возникает необходимость ускорения выполнения кода, масштабирования обработки данных или работы с большим количеством сетевых запросов. Именно в Python для решения этих задач существуют три базовых метода. Это: threading, multiprocessing и asyncio. На первый взгляд – механизмы схожие. Но при детальном разборе ясно, что они решают принципиально разные задачи, опираются на разные модели исполнения и обладают своими ограничениями. В статье расскажу об особенностях каждого метода – будет интересно и познавательно.

Конкурентность и параллелизм в Python

Читать полностью »

У каждого человека есть желания, которые он не сообщает другим, и желания, в которых он не сознается даже себе самому.

Я вообще-то — врач

Я программировать и не собирался, но так уж вышло, что на всю группу одному мне оказалось доступно тайное знание: обход white‑lists при помощи того, чьё имя из трёх букв нам сегодня называть нельзя. Так что я быстро начал карьеру «Дяди Васи Компьютерщика» с объявления у подъездной двери и радостно ходил по гостям настраивать соответствующие «транспортные протоколы».

Читать полностью »

На днях мне прилетела задача, в которой нужно было вычерпывать данные по HTTP с такими вводными:

  • Есть ограничение по количеству запросов в минуту

  • Объём данных - миллионы записей

  • Один запрос выполняется долго (возвращает много данных)

  • Нужен асинхронный механизм выгрузки

Не включая мозг, я начал накидывать решение...

Грабли №1: async, который работает синхронно

async def fetch_all_pages():
    ...
    while True:
        response = await fetch(   # ← ошибка
            f"/resource?page={page}"
        )
        ...
        page += 1
        ...

Формально:

  • async

  • await

Фактически:

Один STT-сервис дал 60-70% точности на специфической лексике (топонимы, названия улиц, профессиональные термины). Два сервиса параллельно + взвешенное голосование + AI-fusion для спорных случаев дали 95%+ точности. Время обработки 5-8 секунд, стоимость $70-130/месяц при 1000 сообщений в день. В статье — полный разбор архитектуры, алгоритмы scoring, примеры кода и расчёт экономики.

Содержание

  1. Почему один STT оказалось недостаточно

  2. Эволюция решения: от 60% к 95%

  3. Архитектура Multi-API Ensemble

  4. Взвешенное голосование: математика выбора

  5. AI-fusion: когда голосования недостаточно

  6. Читать полностью »

Привет! Хочу рассказать о своей новой библиотеке context-async-sqlalchemy, которая помогает очень просто работать с sqlalchemy в async python приложениях. Минимум кода для простых сценариев, но и максимум свободы для сложных.

Сначала кратко пройдемся по теории из чего состоит sqlalchemy и как ее происходит интеграция в python приложение. Посмотрим какие есть нюансы и как context-async-sqlalchemy помогает вам удобно работать. Важно что речь идет только об async python.

Краткая сводка по sqlalchemy

sqlalchemy предоставляет EngineЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js