Как взаимодействовал с очередями
Python
Middle
Без компании
Как взаимодействовал с очередями
Ответы
Работал с RabbitMQ и Redis (Celery) для асинхронной обработки задач. Основные сценарии:
- **RabbitMQ**:
```
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='tasks')
channel.basic_publish(exchange='', routing_key='tasks', body='Task data')
```
Использовал `durable=True` для устойчивости, подтверждения (`ack`) для надежности.
- **Celery + Redis**:
```
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def process_data(data):
return data.upper()
```
Настраивал retry, dead-letter очереди, приоритеты задач.
Для мониторинга использовал Flower (Celery) и RabbitMQ Management Plugin. Важно учитывать backpressure и лимиты памяти в Redis.