Как мы переписывали логику очередей: Celery => aio-pika => FastStream

Наш путь активной работы с очередями RabbitMQ начался с классического Celery. Осознав критичность низкоуровневого контроля системы, принялись работать с aio-pika. Но и этот уровень слишком местами сложный (далее расскажу почему), и нашли отличное решение, на текущий момент, в лице FastStream. Сразу оставлю такую пометку, что каждый инструмент подходит для решения своей задачи. Мы больше хотели сделать акцент на удобство и скорость разработки относительно затрачиваемого времени на миграции решений. N.B. : Код возможно покажется неоптимальным или старым. Это всё наш дорогой Легаси.

https://habr.com/ru/articles/1030082/

#celery #rabbitmq #faststream #aiopika #python3

Как мы переписывали логику очередей: Celery => aio-pika => FastStream

Наш путь активной работы с очередями RabbitMQ начался с классического Celery. Осознав критичность низкоуровневого контроля системы, принялись работать с aio-pika. Но и этот уровень слишком местами...

Хабр

Как я реализовал Blue-Green деплой с нулевым даунтаймом на Docker Compose

Недавно я внедрил blue‑green деплой в проде. Реализация довольно простая и кастомная, но справляется со своей задачей на ура! Также сообщу, что используется обычный докер композ на виртуалке — возможно, кому‑то такой подход будет полезен. Для фоновых процессов (воркеров) В приложение добавляется специальный инфрастуктурный singleton класс с флагом is_accepting, и обертка на consumers. В каждом консьюмере перед обработкой проверяем этот флаг: если True — обрабатываем задачу, если False — переносим задачу на повторную обработку (например, в rabbitmq делаем сразу nack(requeue=true))

https://habr.com/ru/articles/1025776/

#bluegreen_deployment #zero_downtime #dockercompose #cicd #rabbitmq #kafka #faststream #celery

Как я реализовал Blue-Green деплой с нулевым даунтаймом на Docker Compose

Недавно я внедрил blue-green деплой в проде. Реализация довольно простая и кастомная, но справляется со своей задачей на ура! Также сообщу, что используется обычный докер композ на виртуалке -...

Хабр

@mazigazi @asj

FastStream has OpenSubtitles search built-in. I tried several with Plex Tai Chi Master but they were all off.

Now I know how to adjust their timing in FastStream, I'll try again if I find another film without subs, or with bad subs (the subs for Ossessione 1943 on Plex are terrible in BOTH English & Italian)

#Plex #FastStream

@asj

Watched Throne of Blood on Plex yesterday. Subs were available in Plex player, but 1.5-2 seconds late. So I fired up FastStream & used its sub timing arrows. Problem solved! 👍

Took some screenshots using the inbuilt tool, but can't find them for the life of me 😆

#Plex #FastStream #LegitFreeMovies

Практическое тестирование приложений

Всем привет! Эта статья — продолжение материала про универсальный прототип бэкенд-приложений. В ней я поделюсь практическим опытом написания тестов и покажу, как выбранная архитектура упрощает этот процесс. Ну что ж, приступим

https://habr.com/ru/articles/958014/

#python #faststream #dishka #litestar #fastapi #sqlalchemy #pydantic #asgi #pytest

Практическое тестирование приложений

Всем привет! Эта статья — продолжение материала про универсальный прототип бэкенд-приложений . В ней я поделюсь практическим опытом написания тестов и покажу, как выбранная архитектура упрощает этот...

Хабр

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

В этой статье мы создадим функционального Telegram-бота для бронирования столиков в ресторане «Binary Bites» с использованием современных Python-инструментов. Бот будет работать через вебхуки, взаимодействовать с брокером сообщений RabbitMQ и поддерживать фоновое выполнение задач с помощью FastStream и APScheduler. Проект объединит FastAPI, SQLAlchemy, Alembic, Uvicorn и другие библиотеки, обеспечивая гибкость и масштабируемость. Готовый бот позволит пользователям бронировать столики, просматривать и отменять брони, а администраторам — управлять заказами.

https://habr.com/ru/companies/amvera/articles/882878/

#fastapi #rabbitmq #брокер_сообщений #aiogrram #aiogram_dialog #faststream #телеграм_бот #telegram_bot #telegram_bots #sqlalchemy_20

Телеграм-бот для бронирования столов на вебхуках: FastAPI, Aiogram Dialog, FastStream и RabbitMQ в единой экосистеме

Друзья, приветствую. На Хабре я уже описал достаточно много материала, но гештальт с Aiogram dialog и взаимодействие с брокером сообщений RabbitMQ так и не закрыл. Сегодня хочу исправить это. В рамках...

Хабр

FastStream — новый убийца Celery?

FastStream - это относительно новая блестящая игрушка в руках Python'истов, которая создана специально для работы с брокерами сообщений. В Python сложилось устойчивое убеждение, что если мы работаем с MQ - то нам нужен Celery , но он слегка устарел. Именно поэтому люди пытаются выкинуть "деда" и затащить вместо него любой новый многообещающий MQ-инструмент. Кроме того, культ Celery настолько силен в умах, что практически все новые библиотеки для работы с MQ пытаются стать его "убийцей" и заменой. Однако, это не совсем верно. Существует огромный пласт проектов, которым нужен не фреймворк для менеджмента задач, а просто "голый" функционал Kafka / RabbitMQ / NATS /whatever для межсервисного взаимодействия. И все эти проекты вынуждены довольствоваться "сырыми" python-клиентами к своим брокерам, а всю обвязку вокруг этих клиентов писать самостоятельно. FastStream целится как раз в эту нишу. В рамках статьи я хочу убедить вас, что не Celery мы едины, и для альтернативных инструментов найдется место под солнцем. А также рассмотрим фичи FastStream , которые он привносит в застоявшийся мир MQ-инструментов.

https://habr.com/ru/articles/822505/

#python #faststream #open_source #микросервисы #брокер_сообщений #webразработка #kafka #rabbit #nats #redis

FastStream — новый убийца Celery?

FastStream - это относительно новая блестящая игрушка в руках Python'истов, которая создана специально для работы с брокерами сообщений. В Python сложилось устойчивое убеждение, что если мы работаем с...

Хабр

Пишем универсальный прототип бэкенд-приложения: Litestar, FastStream, dishka

Привет, Хабр! Меня зовут Сергей, я техлид в команде PT BlackBox. Мы с коллегами разрабатываем продукт, который позволяет обнаруживать уязвимости в приложениях методом черного ящика. Фактически мы сами и пишем веб-приложения, и именно о них пойдет речь в статье. Я бы хотел с вами поделиться своими наработками по теме бэкенд-приложений и предоставить вам шаблон-прототип, который, как мне кажется, может закрыть подавляющее большинство потребностей при их разработке. Для написания прототипа я буду использовать Litestar , FastStream и dishka . Эта статья будет особенно полезна тем, кто пишет на Tornado, Django, Flask или AIOHTTP и хочет перейти на более актуальные технологии для дальнейшего развития своих проектов на современных рельсах. Ну что ж, приступим

https://habr.com/ru/companies/pt/articles/820171/

#python #Litestar #прототип #web #faststream #asgi #sqlalchemy #alembic #pydantic #dishka

Пишем универсальный прототип бэкенд-приложения: Litestar, FastStream, dishka

Привет, Хабр! Меня зовут Сергей, я техлид в команде PT BlackBox. Мы с коллегами разрабатываем продукт, который позволяет обнаруживать уязвимости в приложениях методом черного ящика. Фактически мы сами...

Хабр

Фоновые асинхронные задачи в FastAPI и их мониторинг

Привет! Меня зовут Иван, я бэкенд-разработчик в KTS. Сегодня расскажу, как в FastAPI эффективно работать с фоновыми задачами и настроить их мониторинг в Prometheus. В туториалах для фоновых задач в FastAPI обычно предлагают celery и при этом используют синхронный код. Но сегодня в реальной практике такое встречается редко, поэтому в этой статье я покажу, как в фоновых задачах использовать асинхронный код. В статье опишу 5 вариантов: встроенный в FastAPI Background Tasks и 4 библиотеки — ARQ, SAQ, FastStream, адаптированный к асинхронному коду Celery. В конце расскажу, как мониторить фоновые задачи. Оглавление

https://habr.com/ru/companies/kts/articles/816757/

#fastapi #faststream #celery #locust #prometheus #arq #saq #grafana

Фоновые асинхронные задачи в FastAPI и их мониторинг

Привет! Меня зовут Иван, я бэкенд-разработчик в KTS. Сегодня расскажу, как в FastAPI эффективно работать с фоновыми задачами и настроить их мониторинг в Prometheus. В туториалах для фоновых задач в...

Хабр