Как мы заменили 30-минутный polling на IMAP IDLE и построили маленькую распределённую систему
Когда-то наш почтовый загрузчик был обычным методом с @Scheduled . Раз в 30 минут он подключался к ящикам, искал новые вложения и запускал их обрабо…
Tech news from the best sources
Когда-то наш почтовый загрузчик был обычным методом с @Scheduled . Раз в 30 минут он подключался к ящикам, искал новые вложения и запускал их обрабо…
Нужно выполнять асинхронные операции, поддерживать многозадачность в приложении? Async/await к вашим услугам - просто и приятно. Кооперативный пул э…
Приветствую! В моей библиотеке ядра уже есть аллокатор , семейство vsnprintf , ctype, string.h, strings.h. Остались только атомики и спинлок, и тогд…
Realtime в приложении есть, а WebSocket — нет: сервер отдаёт сообщения через long-polling. Разбираю на примере боевого iOS-сервиса, где такой realti…
В первой части статьи были рассмотрены следующие распространённые способы организации конкурентного кода при работе с потоками и корутинами: критиче…
Это первая из двух статей о CancelledError — сигнале отмены задачи. В ней мы остановимся на стандартном asyncio. Узнаем, что на самом деле представл…
DLQ — это просто топик. Сложное — всё, что вокруг него. Эта статья — про практическую архитектуру обработки событий из Kafka с отправкой данных во в…
Готовиться к Go-собеседованию по списку с GitHub — значит знать ровно то же, что знают все остальные. Интервьюеры это чувствуют сразу. В этой статье…
В последней части про модели конкурентности JVM языков мы сравним разные подходы друг с другом. И ответим на вопрос “А зачем теперь тред пулы, если…
Coroutine, Fiber, Virtual thread - это всё одно и то же? Или нет ? Или нет. А если под капотом всё равно JVM, почему нельзя просто везде включить vi…
Продолжение разбора реального кода с собеседования. В первой части разобрали 8 проблем concurrency и memory: race conditions, утечки горутин, проигн…