Встречается на собеседованиях • сегодня
Как реализовать гарантию доставки ровно один раз
Для гарантии доставки ровно один раз (exactly-once) можно использовать идемпотентные операции и механизмы дедупликации. Вот основные подходы:
- Идемпотентность - операция даёт одинаковый результат при повторных вызовах:
python
def process_order(order_id, data):
if Order.objects.filter(id=order_id).exists():
return # уже обработан
# логика обработки- Токены дедупликации - генерируем уникальный ID для каждой операции:
python
from uuid import uuid4
def handle_request(request_id, data):
if cache.get(request_id):
return
cache.set(request_id, True)
# обработка данных- Транзакции и журналирование - используем БД с транзакциями:
python
with transaction.atomic():
if not Message.objects.filter(id=msg_id).exists():
Message.objects.create(id=msg_id, ...)
# бизнес-логикаДля распределённых систем можно использовать паттерны вроде:
- Двухфазных коммитов
- Outbox-паттерна
- Подтверждений от потребителя (ack/nack)
Важно учитывать trade-off между надёжностью и производительностью.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы