В прошлую пятницу, ровно в 18:47, когда я уже мысленно открывал великолепный, наполненный витаминами, напиток, мне прилетело сообщение от тимлида: «Бот лежит, пользователи жалуются, Gemini API возвращает 429». Наш корпоративный Telegram-бот, который должен был помогать саппорту отвечать на тикеты, просто встал колом. Причина оказалась до банальности простой: мы не учли rate limiting и думали, что 50 RPM (запросов в минуту) на бесплатном тарифе — это «бесконечно много». С тех пор мы переписали архитектуру, добавили очереди, кэширование и middleware для retry. В этой статье разберу, как с нуля подружить Gemini API с Telegram-ботом на aiogram 3.x, не наступая на те же грабли.Читать полностью »
Рубрика «асинхронное программирование»
Интеграция Google Gemini API в асинхронный Telegram-бот на aiogram 3.x и Python
2026-04-19 в 15:15, admin, рубрики: aiogram, gemini api, llm, python, rate limiting, асинхронное программированиеКейс из production: Deadlock в асинхронном коде на Java
2025-10-20 в 8:17, admin, рубрики: java, jvm, spring framework, асинхронное программирование, многопоточностьНедавно наткнулся на коварную проблему, которая отлично демонстрирует важность правильной конфигурации пула потоков при работе с асинхронным программированием. Эта ситуация может возникнуть в любом проекте, где используются вложенные асинхронные операции, и её последствия могут быть катастрофическими для production-системы.
Описание проблемы
В рамках реализации задачи использовался механизм асинхронного программирования CompletableFuture с методом supplyAsync() для запуска вычислительных задач. Для управления и распределения потоков применялся ThreadPoolTaskExecutorЧитать полностью »
Kotlin Coroutines. От А до Я
2024-08-27 в 13:26, admin, рубрики: async, coroutine, coroutines, deffered, dispatcher, kotlin, launch, асинхронное программирование, асинхронность, корутины
Всем привет!
В этой статье я бы хотел осветить загадочный мир корутин перед своим читателем, рассказав о них от А до Я.
Корутины C++ для чайников: пишем асинхронный веб-клиент
2024-03-08 в 20:35, admin, рубрики: c++, curl, асинхронное программирование, асинхронность, корутиныНаписать этот материал меня побудило... отсутствие хороших статей по корутинам в C++ в русскоязычном интернете, как бы странно это не звучало. Ну серьезно, C++20 существует уже несколько лет как, но до сих пор почти все статьи про корутины, что встречаются в рунете, относятся к одному из двух типов. Или обзор начинается с самых глубин и мелочей, пересказывая cppreference, а потом автор выдыхается и все сводится к «ну а дальше все понятно, возьмите и примените это в своем коде», что напоминает известную картинку с совой:
Асинхронный python без головной боли
2022-05-24 в 19:59, admin, рубрики: async, asyncio, await, python, асинхронное программирование, асинхронность, асинхронные задачи, асинхронные функции, асинхронный код1. Почему так сложно понять asyncio
Асинхронное программирование традиционно относят к темам для "продвинутых". Действительно, у новичков часто возникают сложности с практическим освоением асинхронности. В случае python на то есть весьма веские причины:
-
Асинхронность в python была стандартизирована сравнительно недавно. Библиотека
asyncioпоявилась впервые в версии 3.5 (то есть в 2015 году), хотя возможность костыльно писать асинхронные приложения и даже фреймворки, конечно, была и раньше. Соответственно у Лутца она не описана, а, как всем известно, "про что Лутц не написал, того и знать не надо".
Пишем асинхронного Телеграм-бота
2022-03-15 в 11:11, admin, рубрики: asyncio, python, telegram, telegrambot, асинхронное программирование, асинхронность, Блог компании KTS
Привет! Меня зовут Александр, я руководитель бэкенд-разработки в KTS.
Сегодня я покажу, как написать своего Телеграм-бота на основе asyncio и aiohttp. Мы не будем использовать ни aiogram, ни любые другие библиотеки, а напишем бота с нуля, чтобы немного познакомиться с асинхронным программированием, корутинами и некоторыми примитивами синхронизации.
Делаем асинхронность асинхронной, разбираемся в планировщике Go, ругаем Linux
2022-01-17 в 16:40, admin, рубрики: Go, асинхронное программирование, высокая производительность
В айтишном мире есть две весьма обсуждаемые темы:
-
Что является главным недостатком в Go;
-
Linux vs <что угодно>;
В этой статье я попробую затронуть сразу обе, а также предложить решение проблемы, которая касается первой темы.
Корутины в C++20 — что это и как с ними работать
2021-10-25 в 14:06, admin, рубрики: c++, C++20, wunder fund, wunderfund, асинхронное программирование, асинхронность, Блог компании Wunder Fund, корутины, Программирование, разработка, С++
Прим. Wunder Fund: В статьи описаны базовые подходы к работе с корутинами в 20м стандарте С++, на паре практических примеров разбораны шаблоны классов для промисов и фьючеров. По нашему скромному мнению, можно было бы реализовать и поизящнее. Приходите к нам работать, если имеете сильные мнения о корутинах хе-хе.
Асинхронность в С++20. Доклад в Яндексе
2021-09-21 в 9:54, admin, рубрики: async/await, c++, асинхронное программирование, Блог компании Яндекс, Компиляторы, планировщики, примитивы, Программирование, Совершенный код— О чём я сегодня расскажу? Первое — введение в асинхронность. Далее мы рассмотрим примитивы, которые можно использовать в новом стандарте, и интеграцию с планировщиками. Также немаловажным аспектом будет являться работа со старым кодом, если мы пишем новый код с использованием нового подхода. Затем я покажу бонус, достаточно интересный и необычный. И подведём итоги того, что у нас получилось.
Читать полностью »
Асинхронщина в Rust: Стандартная библиотека и async-.await
2020-06-01 в 7:20, admin, рубрики: async/await, futures, green threads, promises, Rust, асинхронное I/O, асинхронное программирование, корутины, очередь событий, параллельное программирование, планировщик, рантайм, реактор, сетевое программирование, системное программирование, язык программирования rust
Введение
Перед вами руководство по специфике асинхронного программирования на языке Rust — точка входа в экосистему библиотек, справочник, на который можно опираться при проектировании системы и решении нетривиальных задач. К прочтению рекомендую и опытным разработчикам, и новичкам в Rust, только решивших окунуться в эту кроличью нору.
Вас ждёт целый цикл статей разного уровня сложности и погружения, затрагивающий не только асинхронное программирование, но и полезные шаблоны проектирования в Rust, такие как перенос инвариантов бизнес-логики на уровень системы типов, индуктивные вычисления на типах и декларативное программирование посредством комбинаторов.
Сегодня мы рассмотрим API стандартной библиотеки для асинхронного программирования и сам долгожданный синтаксис async/.await.
