Встречается на 1% собеседований по Python
Как реализовать гарантированную отправку заявки с базы данных в очередь
Для гарантированной отправки заявок из БД в очередь можно использовать паттерн Outbox. Основные шаги:
- Запись заявки в БД и в таблицу-оутбокс в одной транзакции:
python
with db.transaction():
save_application(application)
add_to_outbox(application.id, 'queue_name')- Отдельный процесс периодически проверяет оутбокс и отправляет сообщения:
python
def process_outbox():
messages = get_unsent_messages()
for msg in messages:
try:
queue.send(msg)
mark_as_sent(msg.id)
except Exception:
log_error()Ключевые моменты:
- Атомарность записи в БД и оутбокс
- Идемпотентность обработки (повторная отправка не должна дублировать эффект)
- Механизм подтверждения доставки
- Возможность повторной обработки при сбоях
Для надежности можно добавить dead letter queue для проблемных сообщений и мониторинг отставания оутбокса.

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