Что такое backpressure
Python
Middle
Без компании
Что такое backpressure
Ответы
Backpressure — это механизм управления потоком данных, когда получатель не успевает обрабатывать поступающие данные и вынужден замедлять или останавливать отправителя. Это предотвращает перегрузку системы и потерю данных.
Пример с `asyncio.Queue`:
```
import asyncio
async def producer(queue):
for i in range(10):
await queue.put(i) # Блокируется, если очередь полна
print(f"Produced: {i}")
async def consumer(queue):
while True:
item = await queue.get()
await asyncio.sleep(1) # Имитация медленной обработки
print(f"Consumed: {item}")
queue.task_done()
async def main():
queue = asyncio.Queue(maxsize=3) # Ограничение размера очереди
await asyncio.gather(producer(queue), consumer(queue))
asyncio.run(main())
```
Здесь `maxsize=3` создает backpressure: когда очередь заполнена, `producer` будет ждать, пока `consumer` не освободит место.