- Опубликовано
contextvars: thread‑local в asyncio сломался
- Автор
- Имя
- Новости нашего ИТ
- Telegram
- Новости нашего ИТ14 подписчиков5145 постовДанный канал является агрегатором технических статей нашего любимого ИТ, так что кто устал листать тысячи сайтов в поиске технических статей присоеденяйтесь к каналу и наслаждайтесь #it_news
contextvars: почему thread-local сломался в asyncio и как это починили
#Spring kafka
В мире потоков всё было просто: threading.local() даёт каждому потоку свои данные. Request ID, текущий пользователь, database connection — положил в thread-local, достал когда нужно. FastAPI, Flask, Django — все так делали. Потом пришёл asyncio, и эта модель сломалась. В одном потоке выполняются тысячи корутин, и thread-local у них общий. Положил request ID в одной корутине — прочитал чужой в другой. contextvars, появившийся в Python 3.7, решает эту проблему, но механика его работы не очевидна. Разберём, почему thread-local не работает в async, как устроены contextvars, и какие паттерны использовать.
Новости нашего ИТ
14 подписчиков
5145 постов
Данный канал является агрегатором технических статей нашего любимого ИТ, так что кто устал листать тысячи сайтов в поиске технических статей присоеденяйтесь к каналу и наслаждайтесь #it_news
Из подборки #it_news
- Опубликовано
#java
+1
Создание Ambilight приложения для Android на Java
Как создать приложение Ambilight для Android на Java
- Опубликовано
#java
+1
Архитектура факторов ранжирования Ozon runtime
архитектура факторов ранжирования в runtime поиска Ozon
- Опубликовано
#java
+1
How to Find Matched Rules in Drools
найти выполненные правила Drools Java
- Опубликовано
#java
+1
Небольшой подарок моддерскому коммьюнити от меня
подарок моддерскому сообществу: реверс‑инжиниринг ретро‑телефонов на Java
- Опубликовано
#java
+1
Java Type Erasure: Generics Compromise
Java Type Erasure объяснение проблем совместимости
- Опубликовано
красные флаги в резюме мешают работе мечты
красные флаги в резюме, которые мешают кандидатам получить работу мечты
Свежие посты
- Опубликовано
#devops
+1
Model Context Protocol на Go: 100K ops/sec
Model Context Protocol на Go: 100K ops/sec, 10× быстрее Python SDK, multi‑tenancy, security
- Опубликовано
#java
+1
Создать Telegram‑бот погоды за 5 минут Nyagram
Как создать Telegram‑бот погоды за 5 минут на Java с Nyagram и OpenWeatherMap
- Опубликовано
Kafka
+1
Регуляторные документы РФ по ИИ в 2026 году
регуляторные документы РФ безопасность ИИ 2026
- Опубликовано
#java
+1
Spring Shell 4.0.1 is out!
Spring Shell 4.0.1 выпуск
- Опубликовано
Kafka
+1
CDC своими руками: Kafka + Debezium в лаборатории
CDC Kafka Debezium домашняя лаборатория PostgreSQL
- Опубликовано
Kafka
+1
Kafka: обработка ошибок и Dead Letter Queues
Как обработать ошибки в Spring Kafka и использовать Dead Letter Queue
- Опубликовано
#java
+1
Создание Ambilight приложения для Android на Java
Как создать приложение Ambilight для Android на Java
- Опубликовано
#java
+1
Архитектура факторов ранжирования Ozon runtime
архитектура факторов ранжирования в runtime поиска Ozon